#html #jquery
#HTML #jquery
Вопрос:
Чего я хочу добиться, так это того, что после нажатия пользователем на любой блок появляется цифровая панель и отображает пользовательский ввод в классе ‘amount’, где пользователь нажимает на идентификатор #numpad. Я использую библиотеку jQuery.NumPad https://github.com/kabachello/jQuery.NumPad . Я знаю, что это легко, если идентификатор уникален, но я хочу, чтобы идентификатор и класс были одинаковыми.
<a href="#" id="numpad">
<span class="amount"></span>
</a>
<a href="#" id="numpad">
<span class="amount"></span>
</a>
<a href="#" id="numpad">
<span class="amount"></span>
</a>
Это работает, но проблема в том, что пользовательский ввод отображается во всех 3 классах ‘amount’.
<script type="text/javascript">
$('#numpad').numpad({
target: $('bet-amt')
});
</script>
Я попробовал это, но я получаю ошибку консоли «Uncaught SyntaxError: отсутствует имя после . operator»
<script type="text/javascript">
$('#numpad').numpad({
target: $(this).('bet-amt')
});
</script>
Комментарии:
1. » но я все равно хочу идентификатор […]». А? Это недопустимый HTML-идентификатор, который, в частности, «должен быть уникальным во всем документе» ( источник ), чтобы соответствовать спецификации HTML. Почему именно вы хотите это сделать? Это только усложнит задачу для вас, и на первый взгляд кажется, что это требование очень произвольное.
2. Хорошо, если я изменю id на class, это исправит мою проблему?
3. Похоже , вы хотите изменить
id=numpad
, чтобыclass='numpad'
затем использовать$('.numpad').numpad({ target: $('bet-amt', this) });
4. Однако примеров далеко не так много, и в «документации» не говорится, что вы можете (или не можете) использовать
this
дляtarget:
(a.kabachnik.info/jquery-numpad.html вкладка » Параметры»)5. Я попытался заменить id= numpad на class=’numpad’, затем использовать use $(‘.numpad’).numpad({target: $(‘bet-amt’, this) }); но это не сработает
Ответ №1:
Хорошо, я нашел решение своей проблемы. Я заменил id =»numpad» на class =»numpad». И изменил мой сценарий на:
$(function(){
$('.numpad').each(function(){
$(this).numpad({
target: $('.bet-amt', this)
});
});
});
Спасибо!