当元素绑定到另一个元素时,.change不起作用?

Ste*_*fan 2 jquery

不太清楚如何解释这个但是这里.

我有一个基于复选框隐藏/显示的功能:

$( "#勾选")改变(change_visibility).

  function change_visibility() {
   if ($("#checkbox").is(":checked")) {
       $("#theForm").fadeTo("opacity", "1", function() {
        //End Animation
     });

     } else {
       $("#theForm").fadeTo("opacity", "0.3", function() {
         //End Animation
     });
   }
Run Code Online (Sandbox Code Playgroud)

问题是,现在我已将此复选框绑定到其他位置的按钮,并且change()的行为与我预期的不同.

   $("#myButton").click(function(){
      $("#checkbox").attr("checked", true);
   });
Run Code Online (Sandbox Code Playgroud)

尽管复选框正在改变,但它似乎并没有像我手动点击它时那样调用change_visibility()函数.

知道为什么会这样吗?

Fel*_*ing 5

每当您更改输入元素的状态或值时,都不会触发更改事件.

但您可以手动触发它:

$("#checkbox").prop("checked", true).change();
Run Code Online (Sandbox Code Playgroud)