这有点棘手,我希望这是可以做到的。基本上我想要实现的是:如果有人点击页面或任何按钮,它需要调用一个函数。但是,它只需要调用该函数ONCE。事件被触发后,它应取消绑定相同的事件,但它还应该保留页面上的所有其他事件。
https://jsfiddle.net/1wrmqbb0/
$("body, body *").on("click keyup change", function() {
console.log("CLICKED ONCE");
$(this).unbind("click keyup change");
});
当单击身体或身体中的任何其他元素时,它应该调用函数/ console.log或类似的东西。一旦它完成了,它应该再解开它们,因为我只希望这发生一次。
$("button").on("click", function() {
console.log("BUTTON HAS BEEN CLICKED");
});
但是,当我执行上述操作时,它会取消绑定<body>
的所有子项,这意味着我的按钮中的on("click")
也将被取消绑定。
如何让我的按钮不受约束? 注意:我有很多元素,很多点击处理程序,等等。我不想列出它们中的每一个或之后再将它们全部绑定。做这样的事情会非常好:
var firstTimeOnly = $("body, body *").on("click keyup change"....;
firstTimeOnly.not(":those-who-has-an-event-already").unbind("all");
(是的,我知道这将是一个很棒的选择器)