我正在尝试使用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>
答案 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中解决这个问题。