在document.ready上没有调用jquery click()

时间:2015-06-09 03:14:27

标签: jquery

这只是一段学习代码,这并不是为了实现功能。

<!DOCTYPE html>
<html>

    <body>
        <button id="b1">I am b1 </button>
        <br/>
        <button id="b2">I am b2 </button>
    </body>

</html>

$(document).ready(function () {
    $("#b2").trigger('click'); // this is not hiding the b2

    $("#b2").click(); // this is not hiding the b2

    $("#b2").click(function () {
        $(this).hide();
    }); // when i click on b2 then b2 is hidden

    $("#b1").click(function () { // when i click on b1, then b2 is hidden
        $("#b2").click();
    });
});

JS小提琴:https://jsfiddle.net/6k5wh9m0/

为什么在页面加载时未调用$("#b2").click()

我从这种行为中推断出元素b2可能在绑定时可能不可用。但这是对的吗?这是否意味着我们无法在.click()上致电document.ready()

2 个答案:

答案 0 :(得分:3)

在注册处理程序

后触发事件
$(document).ready(function () {
    $("#b2").click(function () {
        $(this).hide();
    }); // when i click on b2 then b2 is hidden

    $("#b1").click(function () { // when i click on b1, then b2 is hidden
        $("#b2").click();
    });

    $("#b2").click(); // need to trigger the event after the handler is registered, else when the event is triggered there is nothing to do
});

&#13;
&#13;
$(document).ready(function() {
  $("#b2").click(function() {
    $(this).hide();
  }); // when i click on b2 then b2 is hidden

  $("#b1").click(function() { // when i click on b1, then b2 is hidden
    $("#b2").click();
  });

  $("#b2").click(); // this is not hiding the b2
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<button id="b1">I am b1</button>
<br/>
<button id="b2">I am b2</button>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

或者你可以:

$("#b2").click(function () {
    $(this).hide();
}).click(); 

$("#b2").click(function () {
    $(this).hide();
}).trigger('click');