【问题标题】:How to set radio buttons in non visible div pages with JQuery Mobile?如何使用 JQuery Mobile 在不可见的 div 页面中设置单选按钮?
【发布时间】:2012-11-08 08:13:35
【问题描述】:

我将一个 html 文件拆分为多个带有 div 的页面。在每个页面上,我都有一个单位切换单选按钮,按下时我希望不可见页面上的所有相应单选按钮也可以切换。

我已尝试使用以下代码,该代码适用于可见页面,但在尝试设置不可见单选按钮(a2 和 b2)时会引发以下错误;

错误:无法在初始化之前调用 checkboxradio 上的方法;试图调用方法“刷新”

代码示例;

    <fieldset data-role="controlgroup" data-type="horizontal" >
<input type="radio" align="center" name="radio-view1" id="radio-view-a1" checked="checked">
<label for="radio-view-a1">Imperial</label>
<input type="radio" name="radio-view1" id="radio-view-b1">
<label for="radio-view-b1">Metric</label>
    </fieldset>

    <!--script type="text/javascript" language="javascript">

$('#radio-view-a1').click(function(){       
    $('#radio-view-a1').attr('checked',true).checkboxradio("refresh");
    $('#radio-view-b1').attr('checked',false).checkboxradio("refresh");
    $('#radio-view-a2').attr('checked',true).checkboxradio("refresh");
    $('#radio-view-b2').attr('checked',false).checkboxradio("refresh");
    updown_toggle_units2imperial();
    });
$('#radio-view-b1').click(function(){
    $('#radio-view-a1').attr('checked',false).checkboxradio("refresh");
    $('#radio-view-b1').attr('checked',true).checkboxradio("refresh");
    $('#radio-view-a2').attr('checked',false).checkboxradio("refresh");
    $('#radio-view-b2').attr('checked',true).checkboxradio("refresh");
    updown_toggle_units2metric();
            });
   </script-->

编辑:我创建了一个 Fiddle 来演示。如果你去link,并点击激活firebug或类似的Metric按钮,你可以看到错误信息

任何帮助我解决如何实现所需行为的帮助将不胜感激!

谢谢

【问题讨论】:

  • 提供的 jsfiddle 链接不起作用...
  • 您好 taifun,不知道您所说的不工作是什么意思。如果您单击公制按钮,它会变为蓝色,但如果您导航到第 2 页(左上角链接),相应的按钮将不会改变。如果你有 firebug 或类似的打开,你会看到我提到的抛出的错误
  • 感谢您的想法,但没有奏效。尝试添加 $("#radio-view-a1").trigger("create");在没有运气之前和之后

标签: jquery jquery-mobile


【解决方案1】:

以下组合有效:

$("input[type='radio']").checkboxradio();
$("input[type='radio']").checkboxradio("refresh");

see working example here

This link帮我找到了

【讨论】:

  • 我对这个答案的赞不绝口!马上解决了我的问题。
【解决方案2】:

使用

$('#radio-view-b1').live('click',function(){ //your code });

而不是

$('#radio-view-a1').click(function(){ //your code });

【讨论】:

  • 感谢您的帮助,但是当我将 .live('click',function() 替换为以前的 .click(function() 时,虽然我不再收到任何错误,但它也不再拿起点击事件。还有其他想法吗?
  • 我进一步尝试了 $('#radio-view-a1').on('click', function () ,但后来我再次收到错误...
猜你喜欢
  • 1970-01-01
  • 2020-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-13
  • 2012-02-29
  • 2014-08-23
  • 2016-03-17
相关资源
最近更新 更多