我有一个与ajax POST相关联的jQuery mobile按钮。如果POST失败,jQuery mobile按钮会保持按下状态而不是“弹出”。有任何想法吗?
这可以很容易地完成。
这里是我之前回答一个问题时制作的jsFiddle
示例:http://jsfiddle.net/3PhKZ/7/
如果你看一下,有这样一行代码:
$.mobile.activePage.find('.ui-btn-active').removeClass('ui-btn-active ui-focus');
$('#pageID').find('.ui-btn-active').removeClass('ui-btn-active ui-focus');
$.ajax( "example.php" )
.success(function() { doStuff(); })
.error(function() {
$('#pageID').find('.ui-btn-active').removeClass('ui-btn-active ui-focus');
})
<a data-role="button"href="#second" id="foobar">下一页</a>
$('#foobar').removeClass('ui-btn-active ui-focus');
这不够好吗? - jaynp<input type='submit' data-theme="a" id="login-button" value="Login">
- jaynp<button type="submit" data-theme="a" id="login-button">登录</button>
。 - jaynp$.ajax( "example.php" )
.success(function() { doStuff(); })
.error(function() { /*code to unpress button here*/ })
对于那些使用"input"而不是"anchors"作为按钮的人来说,当使用例如"submit"和"reset"按钮并按下它们时,它们仍然保持活动状态,这有时是不希望的,具体取决于单击按钮时执行的操作。
我不确定这是否是预期行为,我已经阅读过jQuery mobile的错误,但该行为至少在jQM 1.3.2中仍然存在。
是的,技巧是要删除active class,但是这些会变得棘手,因为class未添加到输入标记,而是添加到由所有丑陋的东西创建的父DIV中,以样式化按钮,这就是为什么在选择输入时删除活动类不起作用。
通过分析jquery mobile生成的HTML,解决方法是:
删除输入父级上的活动类,而不是实际的输入元素。
$('.mybutton_class_or_ID').parent().removeClass('ui-btn-active');
我更喜欢这种方法,而不是在您希望更具选择性地删除类时清除整个页面上的所有活动类。