我在jQuery mobile中有一个按钮:
<a href="#" data-role="button" id="show_edit" data-theme="d" data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" class="ui-btn ui-corner-left ui-btn-up-a ui-btn-up-d"><span class="ui-btn-inner ui-corner-left"><span class="ui-btn-text">Edit</span></span></a>
如果我在控制台中这样做,它可以工作(按钮颜色改变):
$('#show_edit').removeClass('ui-btn-up-d').addClass('ui-btn-up-a');
但是,如果我在页面上的点击处理程序中打包,那么“ui-btn-up-d”类是否会被删除?
$('#show_edit').on('click', function() {
$(this).removeClass('ui-btn-up-d').addClass('ui-btn-up-a');
});
编辑:我认为下面的答案是正确的,但是这是另一种方式,即改变数据主题:
$('#show_edit').attr('data-theme', 'a').attr('class', 'ui-btn ui-corner-left ui-btn-up-a');
答案 0 :(得分:2)
很可能你没有在正确的时间绑定事件,或者它的目标是错误的元素(例如重复的id,这很容易在jQM中无意中得到)
例如,如果您当前的页面有id="home"
,则可以将其绑定为:
// every time the id="home" page is initialized, run this handler
$(document).on('pageinit','#home',function(){
// ensure it targets only elements within this page, however it would
// be better if you didn't use ID's in jQuery Mobile due to the way it
// handles pages.
$('#show_edit',this).click(function() {
//$(this).removeClass('ui-btn-up-d').addClass('ui-btn-up-a');
$(this).toggleClass('ui-btn-up-d ui-btn-up-a');
});
});