У меня проблема с numpad jquery. Я хочу, чтобы пользовательский ввод отображался там, где пользователь нажимает на цифровую панель

#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)
                });
            });
        }); 
  

Спасибо!