Я могу нажать на tr
и отметьте этот флажок. Затем я могу нажать на tr
второй раз, и снимет флажок. Однако, если я попытаюсь щелкнуть то же самое tr
в третий раз (или больше), тогда скрипт больше не работает. Я попробовал несколько версий этого скрипта, используя prop()
вместо `` attr(), но он по-прежнему демонстрирует такое же поведение. Зачем?Почему мой условный сценарий jquery работает только один раз?
HTML:
<tr onclick="checkBox('ID')" id="recordID">
<td>
<input type="checkbox" name="myRecords[]" id="myRecordsID" value="ID">
</td>
</tr>
JQuery:
function checkBox(ID) {
$(document).on("click",'#record'+ID,function(){
$(document).on("click",'input#myRecords'+ID,function(e){
e.stopPropagation();
});
var ischecked = $('input#myRecords'+ID).is(":checked");
if(ischecked) {
$('input#myRecords'+ID).removeAttr("checked");
} else {
$('input#myRecords'+ID).attr("checked", "checked");
}
});
});
Не были ли события привязки внутри функции заставлять их связываться каждый раз, когда функция выполняется? – Daedalus
Да. Но функция выполняется только один раз. – Fresheyeball
Вы вызываете функцию, но этот человек хочет передать идентификатор функции. Это не так. – Daniel