Javascript 为什么我所有的jQuery mobile.on()指令都会在页面加载时自动触发?
我目前正在制作一个基于jQuery移动框架的小型移动web应用程序,它应该加载一堆页面,用户可以向左或向右滑动,或者触摸/单击“上一页”/“下一页”按钮进行浏览。因此,我的代码如下所示:Javascript 为什么我所有的jQuery mobile.on()指令都会在页面加载时自动触发?,javascript,jquery,jquery-mobile,Javascript,Jquery,Jquery Mobile,我目前正在制作一个基于jQuery移动框架的小型移动web应用程序,它应该加载一堆页面,用户可以向左或向右滑动,或者触摸/单击“上一页”/“下一页”按钮进行浏览。因此,我的代码如下所示: function next(destination) { alert('next'); // for testing purpose $.mobile.changePage(destination, { transition: "slide" }); } functio
function next(destination) {
alert('next'); // for testing purpose
$.mobile.changePage(destination, {
transition: "slide"
});
}
function prev(destination) {
alert('prev'); // for testing purpose
$.mobile.changePage(destination, {
transition: "slide",
reverse: true
});
}
$(window).load(function(){
$("#btn_next1").on("click", next("index.html#pagetwo"));
$("#btn_prev2").on("click", prev("index.html#pageone"));
$("#btn_next2").on("click", next("index.html#pagethree"));
$("#btn_prev3").on("click", prev("index.html#pageone"));
$("#pageone").on("swipeleft", next("index.html#pagetwo"));
$("#pagetwo").on("swipeleft", next("index.html#pagethree"));
$("#pagetwo").on("swiperight", prev("index.html#pageone"));
$("#pagethree").on("swiperight", prev("index.html#pagetwo"));
});
我不知道我做错了什么,但当我在浏览器上尝试此操作时,我会在开始时启动所有“.on()”指令,而无需等待我的单击或滑动,因此我会收到警报,每次警报后都会进行页面更改,并进行正确的转换。我还尝试将这些指令放在“$(window.load()”之外
如果有人能告诉我我做错了什么,或者告诉我一个更简单的方法,我需要你的帮助。谢谢因为您缺少为事件处理程序创建引用的所有匿名函数,请将它们全部更改为此模式
$("#btn_next1").on("click", function() {
next("index.html#pagetwo"));
});
当您使用括号调用函数时,函数将立即执行并返回结果,这意味着您可以在不需要传递参数的情况下直接引用函数
$("#btn_next1").on("click", next);
但你做不到
$("#btn_next1").on("click", next(argument));
那你就不得不这么做了
$("#btn_next1").on("click", function() {
next(argument);
});
使用页面事件,不要使用
.load()
附加事件。