未链接的按钮和链接按钮不会在jQuery Mobile中显示点击动画/状态更改

时间:2012-09-15 00:10:27

标签: mobile button jquery-mobile

我正在尝试使用jQuery Mobile在移动应用中使用未链接的按钮。我仍然希望按钮是可点击的,而不是默认的ajax行为,我想使用我自己的。

然而,当我点击一个没有链接到某个东西的按钮时,它没有给出任何反馈。也就是说CSS不会更改为按下状态,然后再返回。当我点击具有有效href的链接或在表单内部时它起作用。

奇怪的是,在我的桌面浏览器中单击链接确实会调用更改,尽管它与点击按钮不同。使用默认的CSS包按钮会在点击它们以提交表单或进入下一页时暂时变为蓝色。当我在桌面上点击它们时,它们会转到悬停状态,这是灰色的,所以它似乎不适用于任何浏览器。

有人知道如何使用简单的按钮来响应点击,即使该按钮实际上没有链接到任何地方吗?

编辑:这里有一些代码尝试我在iOS和Android上尝试过这个,结果相同。

<!DOCTYPE html>
<html>
    <head> 
        <title>My Page</title> 
        <meta name="viewport" content="width=device-width, initial-scale=1"> 
        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0-beta.1/jquery.mobile-1.2.0-beta.1.min.css" />
        <script src="http://code.jquery.com/jquery-1.8.1.min.js"></script>
        <script src="http://code.jquery.com/mobile/1.2.0-beta.1/jquery.mobile-1.2.0-beta.1.min.js"></script>
    </head>

    <body>

        <div data-role="page" id="startpage">
            <div data-role="header" data-theme="c">
                <h1>Button Test</h1>
            </div>
            <div data-role="content">
                <button id="test1">Test 1</button>
                <button data-role="button" id="test2">Test 2</button>
                <a data-role="button" id="test3">Test 3</a>
                <a data-role="button" href="" id="test4">No href</a>
                <a data-role="button" href="#" id="test5">href=#</a>
                <a data-role="button" href="#page2" id="test6">This works because it's linked</a>
                <form method="get" action="index2.html">
                    <input type="text" name="name" placeholder="Name"/>
                    <button type="submit" value="No tap change here either"></button>
                </form>
            </div><!-- /content -->
        </div><!-- /page -->

        <div data-role="page" id="page2">
            <div data-role="header" data-theme="c">
                <h1>Page 2</h1>
            </div>
            <div data-role="content">Linked buttons work</div>
        </div>

    </body>
</html>

1 个答案:

答案 0 :(得分:1)

好的,我最终在jQuery Mobile问题跟踪器中提交了一个错误,这似乎是一个已知问题。

https://github.com/jquery/jquery-mobile/issues/5009 https://github.com/jquery/jquery-mobile/issues/4469

解决方法是使用如下链接按钮:

<a href="javascript:void(0)" data-role="button">Click me</a>

使用该按钮将向用户提供反馈,即使它实际上没有去任何地方或做任何事情。

他们正在考虑在v1.3中解决这个问题。