如果有的话,jQuery的更改方法在这里做什么?



我熟悉像这样将处理程序附加到复选框的属性更改:

$(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做什么

相关内容

  • 没有找到相关文章