想象一下,我在页面home.html
中,我有一个点击事件到一个元素,它会触发changePage
到user.html
好的,home.html
中的元素在header
中设置,在user.html
中,我在相同的html位置中有另一个元素。
问题是:当我点击home.html
上的元素时,另一个页面中的另一个vclick
事件发生了。只有vclick
或tap
使用click
工作正常才会出现此问题,并且这两个元素需要位于相同的html位置两个页面都很强大。
这是我在home.html中绑定的事件
accessProfile: function(){
$("body").on("vclick", ".accessUser", function(){
$.mobile.changePage("user.html");
});
}
并且这个绑定到user.html
accessHome: function(){
$("body").on("vclick", ".accessHome", function(){
$.mobile.changePage("home.html");
});
}
这只是一个示例,因此,vclick
中accessUser
,然后changePage
发生,但一旦完成,事件.accessHome
就会发生并返回主页。同样,只有当两个元素处于相同的html位置时才会发生这种情况。
答案 0 :(得分:0)
那么,当时我的问题已解决,将所有内容更改为pageinit
而不是$(document).ready(function(){...});
并使用以下内容阻止多个事件:
$("body").on("touchstart", ".someElement", function(event){
if(event.handled !== true){ // This will prevent event triggering more then once
// code
event.handled = true;
}
return false;
});