Я только что узнал, как использовать метод .on(), и я использую его для добавления обработчика событий к некоторым кнопкам, которые добавляются «вживую» (после готовности DOM).jQuery при запуске события щелчка несколько раз
$('#table').on("click", ".delete", function() {
//whatever
});
Это похоже на работу, но когда я использую его в своем коде, я получаю событие click, которое запускается дважды. Он срабатывает столько раз, сколько я изменил селектор, то есть я нажимаю имя в селекторе, а затем еще один, и еще один, скажем, 3 раза, а затем, щелкая по указанной кнопке, я получу предупреждение со всеми этими тремя именами только тот, который выбран в это время.
Я не смог воспроизвести его в JsFiddle, поскольку все это довольно большое. Поэтому дайте мне знать, что еще я могу добавить, чтобы сделать вопрос лучше.
JS
$('#dataSelector').change(function() {
#more code
$('#table').on("click", ".delete", function() {
var data_name = $("#dataSelector option:selected").attr('name');
alert(data_name);
});
});
HTML
<div id="selectData">
<label>Select:</label>
<br>
<div class="">
<select id="dataSelector" class="form-control">
<option id="default" selected="true" name="default">Pick</option>
<option value="1" name="somethingA">somethingA</option>
<option value="2" name="somethingB">somethingB</option>
<option value="3" name="somethingC">somethingC</option>
</select>
</div>
</div>
<div id="goal_table" class="col-md-12">
<table id="table" class="table table-bordered">
<tbody>
<tr>
<th>Name1</th>
<th>Name2</th>
<th>Name3</th>
<th>name4</th>
<th></th>
</tr>
<tr id="13">
<td>somethingA</td>
<td>value</td>
<td>whatever</td>
<td>∞</td>
<td>
<button name="13" type="button" class="btn btn-default delete"><i class="fa fa-trash" aria-hidden="true"></i>
</button>
</td>
</tr>
</tbody>
</table>
</div>
Я не вижу такой вещи в консоли. Пробовал ловить и печатать ваше событие в консоли. Проверьте эту скрипту своего кода: https: //jsfiddle.net/Lrdntz07/ .. –
Да, как я уже сказал, я не смог воспроизвести его, но принятый ответ работает, так что все в порядке. –