在我的手机应用中,使用jQuery Mobile …
>我想使一个简单的按钮执行一个简单的javascript功能点击。没有页面转换,没有什么特别的。
>我知道我可以通过返回false或preventDefault()来消除页面转换
>但是问题是按钮处于“活动”状态,如果使用常规主题,则突出显示为蓝色。我想知道如何在点击之后删除它(或点击等等)。
谢谢。
解决方法
更新:
这个问题和建议的黑客现在有点过时了。 jQuery手机处理按钮与3年前有所不同,而且jQuery mobile现在有几个不同的“按钮”定义。如果您想要执行OP正在寻找的内容,那么您现在可以使用以下方式来避免此问题:
步骤1:
<button class="ui-btn myButton">Button</button>
或者,您也可以使用jQuery移动输入按钮:
<form> <input value="Button One" type="button" class="myButton"> <input value="Button Two" type="button" class="myButton2"> </form>
第2步:
那么你的标准jquery回调:
$(".myButton").on("tap",function(e) { // do your thing });
如果您正在使用按钮或选项卡,或任何具有“活动”类的应用程序(默认为ui-btn-活动),旧的答案可能对某人有用。另外,here is a fiddle演示下面的代码。
选择性地删除活动状态:
如另一个答案所示,您可以禁用所有页面上所有按钮的活动状态。如果这个项目是可以接受的,那就是适当(更简单)的解决方案。但是,如果要禁用某些按钮的活动状态,同时保留其他按钮的活动状态,则可以使用此方法。
步骤1:
$(document).bind('mobileinit',function() { $(document).on('tap',function(e) { $('.activeOnce').removeClass($.mobile.activeBtnClass); }); });
第2步:
然后添加activeOnce类(或任何你想要调用它 – 它是一个自定义类)到你不想突出显示的按钮。
和通常的绑定任何东西到mobileinit,一定要把你的绑定 – 也许更好的所有你的JavaScript代码 – 下面的jQuery脚本和jQuery手机脚本之上。
<script src="js/jquery.js"></script> <script src="js/my_script.js"></script> <script src="js/jquery.mobile.js"></script>