Jquery mobile JQuery移动处理链接(返回false)

Jquery mobile JQuery移动处理链接(返回false),jquery-mobile,anchor,hyperlink,Jquery Mobile,Anchor,Hyperlink,我计划使用JQM制作一个简单的移动web应用程序,但我在使用这个简单的功能时遇到了问题:当我点击一些链接(不是全部链接)时,我希望能够首先处理一些数据,然后根据结果,有时继续链接操作(我喜欢整个转换和ajax的东西),有时也不会 重要的一点是,我想为链接保留正常的JQMobile转换和内容,只是有时候会阻止它们(例如验证之类的) 我尝试过:returnfalse、preventDefault(与stopPropagation结合使用)和data ajax=“false”,但都不起作用,它们都重定

我计划使用JQM制作一个简单的移动web应用程序,但我在使用这个简单的功能时遇到了问题:当我点击一些链接(不是全部链接)时,我希望能够首先处理一些数据,然后根据结果,有时继续链接操作(我喜欢整个转换和ajax的东西),有时也不会

重要的一点是,我想为链接保留正常的JQMobile转换和内容,只是有时候会阻止它们(例如验证之类的)

我尝试过:returnfalse、preventDefault(与stopPropagation结合使用)和data ajax=“false”,但都不起作用,它们都重定向

有人能告诉我在JQMobile中的正确方法吗?以防万一,这很重要:我正在使用锚链接,用于测试

先谢谢你,詹妮弗


已解决:在下面添加了答案。

您可以尝试在要防止默认行为的链接上设置
单击事件

在下面的示例中,我们向链接添加了一个class
special\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>