$(document).on("pagebeforeshow", function(event) {
$("#mybtn").on("click", function(e) {
$.mobile.showPageLoadingMsg();
$.mobile.changePage("twitter.html", {
reloadPage: false, changeHash: true,
});
$('#mybtn').unbind('');
});
});你能告诉我为什么解除绑定在Jquery mobile中很重要吗?请告诉我最好的解除绑定事件的方法。我用下面的方法来绑定和解除绑定events.Is
发布于 2013-10-20 20:38:48
看一下这个例子:
代码
$("#page2").on("pagebeforeshow", function(){
$("#testBtn").on("click", function(){
alert("Hi!");
});
});如果从第1页转到第2页,然后单击名为Click me的按钮,您将看到警告"Hi!“正确显示。事件是绑定在pagebeforeshow上的,到目前为止一切都很好。
现在返回到page1,然后再次加载page2,再次单击Click me按钮。您将看到该警告显示了2次!这是错误的。这就是为什么你需要在再次绑定事件之前unbind它的原因。
基本上,每次加载page2时,都会将一个新事件绑定到按钮上。因此,如果您加载该页面的10倍,您将有10个事件绑定到按钮,这些事件将在按钮被单击时触发。
下面是unbind的一个有效方法(为了解除事件绑定,我使用了off()):
代码
$("#page2").on("pagebeforeshow", function(){
$("#testBtn").off("click").on("click", function(){
alert("Hi!");
});
});看一看here,了解我为什么使用off()而不是unbind(),如果您想了解off()工作原理,也可以使用here
我希望这有助于澄清你的疑虑..
https://stackoverflow.com/questions/19477232
复制相似问题