我熟悉像这样将处理程序附加到复选框的属性更改:
$(function(){
$("#chkbox").change(function(){
alert($(this).val())
});
});
然而,这样做$("#chkbox").change();
将触发我的警报,但复选框的状态实际上不会改变,这告诉我,jQuery只是触发处理程序,它已经绑定到一个元素。像[bourbon.io][1]
那样调用它来关闭它的模态有什么用?
$(".modal-fade-screen, .modal-close").on("click", function() {
$(".modal-state:checked").prop("checked", false).change();
});
如果我省略了最后的.change()
,模态仍然关闭,似乎一切都很好。链化change()
有什么用?我问这个问题,是因为我想用Angular来处理这个模态,我需要调用关闭复选框的状态,这样我才能用其他按钮关闭模态。angular.element(".modal-state:checked").prop("checked", false);
似乎工作得很好,但因为我不知道在Angular中有change
这样的东西(它在jQlite中不存在),我想确定我没有错过任何东西。
如果将change
事件监听器附加到元素上,则每次用户触发该事件时,事件处理程序都会触发。但是,如果您以编程方式操作具有通常会触发事件处理程序的更改的元素,则事件处理程序将不会触发。因此,您需要在进行更改后手动触发更改事件,以便可以触发事件处理程序。
$(".modal-state:checked").prop("checked", false).change();
//or $(".modal-state:checked").prop("checked", false).trigger('change');
链接change()的用途是什么?这完全取决于change event handler
做什么