Jquery mobile JQuery移动处理链接(返回false)
我计划使用JQM制作一个简单的移动web应用程序,但我在使用这个简单的功能时遇到了问题:当我点击一些链接(不是全部链接)时,我希望能够首先处理一些数据,然后根据结果,有时继续链接操作(我喜欢整个转换和ajax的东西),有时也不会 重要的一点是,我想为链接保留正常的JQMobile转换和内容,只是有时候会阻止它们(例如验证之类的) 我尝试过:returnfalse、preventDefault(与stopPropagation结合使用)和data ajax=“false”,但都不起作用,它们都重定向 有人能告诉我在JQMobile中的正确方法吗?以防万一,这很重要:我正在使用锚链接,用于测试 先谢谢你,詹妮弗Jquery mobile JQuery移动处理链接(返回false),jquery-mobile,anchor,hyperlink,Jquery Mobile,Anchor,Hyperlink,我计划使用JQM制作一个简单的移动web应用程序,但我在使用这个简单的功能时遇到了问题:当我点击一些链接(不是全部链接)时,我希望能够首先处理一些数据,然后根据结果,有时继续链接操作(我喜欢整个转换和ajax的东西),有时也不会 重要的一点是,我想为链接保留正常的JQMobile转换和内容,只是有时候会阻止它们(例如验证之类的) 我尝试过:returnfalse、preventDefault(与stopPropagation结合使用)和data ajax=“false”,但都不起作用,它们都重定
已解决:在下面添加了答案。您可以尝试在要防止默认行为的链接上设置
单击事件
在下面的示例中,我们向链接添加了一个classspecial\u link
,在重定向到另一个页面之前,我们希望对该链接执行一些特殊操作
当我们点击“特殊”链接时,在决定将用户重定向到另一个页面之前,我们会检查是否遵循了给定的条件
重定向(包括所有转换)到另一个页面(在我们的示例中为page_2
)是手动完成的,代码如下:
$.mobile.changePage( "#page_2", {
transition: "slide",
});
有关方法$.mobile.changePage
的更多信息,您可以查看在线文档:
在下面的示例中,如果在文本输入中键入1
,则不会重定向。否则,您将更改页面
$(函数(){
//为我们的特殊链接设置单击事件
$(“.special_link”)。单击(函数(){
//如果出现某种情况,则…(此处,如果我们在文本输入中键入1)
if($('#my_value').val()='1'){
//我们不换页
警惕(“我们待在原地”);
}否则{
//我们改变页面。在这个例子中:第2页
$.mobile.changePage(#第2页){
转换:“幻灯片”//您可以定义转换
//您需要+其他参数
});
}
});
});
第1页
第2页
我希望这有帮助。如果您有任何问题,请告诉我。好的,所以我想出了一个相当不错的方法来做这件事,而不会让人觉得这是一件麻烦事。我只是想避免使用标签,而是使用按钮,这样我通常会截取它们,如果我想转换,我会使用changePage JQM方法。工作起来很有魅力。谢谢你的建议,我希望这对以后的其他人有用。首先感谢你的回答!我已经能够实现同样的事情,虽然我不知道关于changePage,它看起来真的很方便,所以谢谢你,但是。。。我的问题是,我希望有时不更改页面,例如,基本上模拟表单提交中的返回false。如果$something跟在后面,那么就什么都没有了。谢谢我不确定我是否正确理解了您的问题,但您可能需要在click语句中添加一个if
条件?我修改了代码,所以你可以看一下。我的问题是,我找不到什么可以阻止重定向。虽然我很感谢你的帮助,但我在最初的帖子中已经解释了所有这些。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css" />
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js"></script>
<script>
$(function() {
// Setting the click event for our special link
$(".special_link").click(function() {
// IF SOME CONDITION THEN... (Here, if we typed a 1 in the text input)
if($('#my_value').val()=='1') {
// We do not change page
alert("We stay where we are");
} else {
// We change page. In this example: page 2
$.mobile.changePage( "#page_2", {
transition: "slide", // You can define the transition
// you want + other parameters
});
}
});
});
</script>
</head>
<body>
<!-- PAGE 1 -->
<div data-role="page" id="page_1">
<div data-role="content">
<h1>Page 1</h1>
<input type="text" id="my_value"/>
<!-- A SPECIAL LINK -->
<a href="" class="special_link">Special link</a>
</div>
</div>
<!-- PAGE 2 -->
<div data-role="page" id="page_2">
<div data-role="content">
<h1>Page 2</h1>
<a href="#page_1">Go back to page 1</a>
</div>
</div>
</body>
</html>