jquery mobile trigger click第一次不起作用

时间:2013-04-04 08:44:33

标签: jquery-mobile jquery

我有一个带有几个无线电输入的jquery移动表格,选项“DS”,“NO”和“YES”。我想当我点击一个按钮时,它会模拟所有单选按钮的“是”选项的点击。

我使用此代码:

$("#btn-all-yes").click(function(){
    $(".replay-yes").each(function(index, element){
        $(element).trigger("click");                  
        //$(element).click();       
    });
});

但我需要在按钮中单击两次以获得所需的结果。如果我将行'$(element).trigger(“click”)'放两次就可以了,但我认为它应该只需一次调用click事件。

您可以在http://jsfiddle.net/qwLPH/7/

查看所有代码

2 个答案:

答案 0 :(得分:4)

你需要改变它的'状态使用.prop,然后刷新.checkboxradio('refresh')

Working demo

更新 - 取消选中其他按钮

$("#btn-all-yes").click(function () {
 $('[data-role="controlgroup"]').find("[type=radio]").each(function () {
  if ($(this).hasClass('replay-yes')) {  
   $(this).prop('checked', true).checkboxradio("refresh");
  } else {
     $(this).prop('checked', false).checkboxradio("refresh");
    }
 });
});

旧答案

$("#btn-all-yes").click(function(){
 $(".replay-yes").each(function(index, element){
    $(element).prop('checked', true).checkboxradio("refresh");                  
 });
});

答案 1 :(得分:4)

尝试初始化页面加载上的点击:

$(".replay-yes").each(function (index, element) {
    $(element).trigger("click");
    //$(element).click();       
}).click();
//-^^^^^^^----------this way

Tryout in fiddle here