Jquery mobile jQuery移动快速单选按钮

Jquery mobile jQuery移动快速单选按钮,jquery-mobile,web-applications,user-interface,touch,Jquery Mobile,Web Applications,User Interface,Touch,另一个话题是关于在移动设备上使用web应用程序时的按钮响应问题 我正在监听触发按下单选按钮的touchend事件。这解决了使按钮更具响应性的问题,但也产生了另一个问题 当事件发生时,jQuery mobile将应用诸如ui-icon-radio on,ui-btn-hvr-a,ui-btn-dwn-a之类的类。这使按钮看起来像是在事件结束时仍被按下。为了使一切看起来都正常,删除和添加所有这些类是一项相当不错的工作 我的问题是——是否有人有一种优雅的方式来添加和删除所需的类和属性 或 是否有更好的

另一个话题是关于在移动设备上使用web应用程序时的按钮响应问题

我正在监听触发按下单选按钮的
touchend
事件。这解决了使按钮更具响应性的问题,但也产生了另一个问题

当事件发生时,jQuery mobile将应用诸如
ui-icon-radio on
ui-btn-hvr-a
ui-btn-dwn-a
之类的类。这使按钮看起来像是在事件结束时仍被按下。为了使一切看起来都正常,删除和添加所有这些类是一项相当不错的工作

我的问题是——是否有人有一种优雅的方式来添加和删除所需的类和属性

是否有更好的方法来实现这一点,而不涉及“重新创建控制盘”,即手动处理基于事件触发器的样式。谷歌的快速按钮是更好的解决方案吗?(不知道如何整合)。有没有更简单的方法

$(document).on('pageinit pageshow', 'div:jqmData(role="page"), div:jqmData(role="dialog")', function (event) {
if($(this).hasClass('AdminSurv') && event.type=='pageinit') {
    $(this).on( 'touchend', '.ui-radio', function(event) {
        event.preventDefault();

        /*uncheck all radios in control group to avoid multiple checks*/
        var _control_group = $(this).parent();
        _control_group.find("input:radio:checked").attr('checked',false);

        /*check the radio*/
        $(this).find('input').attr('checked', true);

        /*much juggling of classes/attributes going on here
          still looks like the buttons are being held down
          this is a very sloppy example of my initial attempt*/
        _control_group.find('label').removeClass('ui-radio-on');
        _control_group.find('label').removeAttr('data-icon');
        _control_group.find('label span span').removeClass('ui-icon-radio-on');

        $(this).find('label').removeClass('ui-radio-off');
        $(this).find('label').addClass('ui-radio-on');
        $(this).find('label').attr('data-icon','radio-on');

        $(this).find('label span span').removeClass('ui-icon-radio-off');
        $(this).find('label span span').addClass('ui-icon-radio-on');
    });
  }
});

许多jquerymobile小部件接受
refresh
方法,在该方法中,它用于增强DOM中已经存在的元素的标记或动态插入的元素

对于复选框和单选按钮,
.checkboxradio('refresh')
.prop()
结合使用,通过动态添加/删除选中和未选中元素的类来增强/修改标记

检查

$('.selector').prop('checked', true).checkboxradio('refresh');
取消选中

$('.selector').prop('checked', false).checkboxradio('refresh');


参考资料:

你不应该做这项繁忙的工作。您只需使用
.prop('checked',false/true)
。checkboxradio('refresh')
检查这个完美的!我希望这样的解决方案存在。我很抱歉在我搜索的时间里没有找到它。一件小事-使用此方法,在查看web inspector时,我没有看到应用输入属性checked=“checked”,但是当我提交表单时,我看到确实存在POST数据。不过我确实看到这些类正在更新。奇怪的小故障?请将您提供的信息作为答案发布,这样您就可以获得积分。再次为没有找到已经存在的信息感到抱歉。我很高兴你的问题得到了解决。我会写一份详细的答复。