У меня есть таблица с большим количеством данных, поэтому я использую jquery Таблицы данных. Теперь у меня есть раскрывающийся список выбора внутри таблицы: на первой странице работает раскрывающийся список выбора со скриптом, на второй странице предупреждение не отображается, когда я выбираю данные из раскрывающегося списка. Вот мой рабочий пример.
код:
$("#example").dataTable();
$(".opt_value").on("change", function() {
alert("===11== = ");
alert($('option:selected', this).val());
});<link rel = "stylesheet" type = "text/css" href = "http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/css/jquery.dataTables.css">
<script type = "text/javascript" charset = "utf8" src = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.2.min.js"></script>
<script type = "text/javascript" charset = "utf8" src = "http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/jquery.dataTables.min.js"></script>
<table id = "example">
<thead>
<tr>
<th>Sites</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<select class = "opt_value" name = "opt">
<option value = "">STATUS</option>
<option value = "aa">aa</option>
<option value = "bb">bbb</option>
</select>
</td>
</tr>
<tr>
<td>
<div class = "col-md-2 text-center">
<select class = "opt_value" name = "opt">
<option value = "">STATUS</option>
<option value = "aa">aa</option>
<option value = "bb">bbb</option>
</select>
</div>
</td>
</tr>
<tr>
<td>
<div class = "col-md-2 text-center">
<select class = "opt_value" name = "opt">
<option value = "">STATUS</option>
<option value = "aa">aa</option>
<option value = "bb">bbb</option>
</select>
</div>
</td>
</tr>
<tr>
<td>
<div class = "col-md-2 text-center">
<select class = "opt_value" name = "opt">
<option value = "">STATUS</option>
<option value = "aa">aa</option>
<option value = "bb">bbb</option>
</select>
</div>
</td>
</tr>
<tr>
<td>
<div class = "col-md-2 text-center">
<select class = "opt_value" name = "opt">
<option value = "">STATUS</option>
<option value = "aa">aa</option>
<option value = "bb">bbb</option>
</select>
</div>
</td>
</tr>
<tr>
<td>
<div class = "col-md-2 text-center">
<select class = "opt_value" name = "opt">
<option value = "">STATUS</option>
<option value = "aa">aa</option>
<option value = "bb">bbb</option>
</select>
</div>
</td>
</tr>
<tr>
<td>
<div class = "col-md-2 text-center">
<select class = "opt_value" name = "opt">
<option value = "">STATUS</option>
<option value = "aa">aa</option>
<option value = "bb">bbb</option>
</select>
</div>
</td>
</tr>
<tr>
<td>
<div class = "col-md-2 text-center">
<select class = "opt_value" name = "opt">
<option value = "">STATUS</option>
<option value = "aa">aa</option>
<option value = "bb">bbb</option>
</select>
</div>
</td>
</tr>
<tr>
<td>
<div class = "col-md-2 text-center">
<select class = "opt_value" name = "opt">
<option value = "">STATUS</option>
<option value = "aa">aa</option>
<option value = "bb">bbb</option>
</select>
</div>
</td>
</tr>
<tr>
<td>
<div class = "col-md-2 text-center">
<select class = "opt_value" name = "opt">
<option value = "">STATUS</option>
<option value = "aa">aa</option>
<option value = "bb">bbb</option>
</select>
</div>
</td>
</tr>
<tr>
<td>
<div class = "col-md-2 text-center">
<select class = "opt_value" name = "opt">
<option value = "">STATUS</option>
<option value = "aa">aa</option>
<option value = "bb">bbb</option>
</select>
</div>
</td>
</tr>
<tr>
<td>
<div class = "col-md-2 text-center">
<select class = "opt_value" name = "opt">
<option value = "">STATUS</option>
<option value = "aa">aa</option>
<option value = "bb">bbb</option>
</select>
</div>
</td>
</tr>
</tbody>
</table>Может ли кто-нибудь заранее подсказать, как сделать спасибо.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы должны прикрепить событие к документу для динамически добавленные объекты:
jQuery(document).on("change",".opt_value", function(){
alert("===11== = ");
...
});
Вот рабочий рабочий пример
Замените код jQuery приведенным ниже кодом, и обработчик событий должен быть на document.
jQuery(document).on('change', '.opt_value', function() {
alert('===11===');
alert( $('option:selected', this).val() );
});
или вы также можете использовать
jQuery('body').on('change', '.opt_value', function() {
alert('===11===');
alert( $('option:selected', this).val() );
});
Вы прикрепляете обработчик события изменения перед, строки второй страницы были созданы. Поэтому их изменение не слушается. Итак, вам нужно прикрепить функцию обработчика событий для всей таблицы и использовать всплытие событий.
$("#example").dataTable();
$("#example").on("change", ".opt_value", function() {
alert("===11== = ");
alert($('option:selected', this).val());
});
Возможный дубликат Изменение выбора jquery не срабатывает