在pageshow jquery mobile时激活一个函数

时间:2014-05-23 12:31:12

标签: javascript jquery jquery-mobile

我在jquery pageshow函数中有一个函数,只有在特定页面(id)上才能激活。但由于某种原因,它不会运行该脚本。页面是动态的id。

以下是我的代码示例

$(document).on('pageshow', '#fragment-1', function() {    
        $.mobile.activePage.find("div [data-role=tabs] ul li:first-child a").click();

        createCheckboxes('#fragment-2')

});

function createCheckboxes(into){

        var players_names = playerCal("ars", 7, 5);
         $("#createBtn").remove();
         $(into).append('<fieldset class="cbFieldSet" data-role="controlgroup">');
         var length = players_names[0].length;
         $(".cbFieldSet").append("<ul data-role='listview' data-inset='true' data-theme='d' data-divider-theme='e' data-count-theme='b'><li data-role='list-divider'><span>Select players in the next line up2</span></li></li>");
         for(var i=0;i<length;i++){
            $(".cbFieldSet").append('<li><input type="checkbox" name="cb-'+i+'" id="cb-'+i+'" value="'+players_names[0][i]+'"/><label for="cb-'+i+'">'+players_names[0][i]+'</label></li>');
         }

          $(".cbFieldSet").append("</ul>");

         $(into).trigger("create");
         $("#showBtn").css("visibility","visible");
         console.log(players_names);
        }

我的动态网页示例,有效

+"<div id='fragment-1'>"
      + "<form>"
      + "<fieldset data-role='controlgroup' class = 'content'>"
      + "</fieldset>"
      + "</form>"
      + "</div>"
      + "<div id='fragment-2'>"
     + "<form>"
      + "<fieldset data-role='controlgroup' class = 'content'>"
      + "</fieldset>"
      + "</form>"
      + "</div></div></div>");

1 个答案:

答案 0 :(得分:1)

我喜欢有人创造清晰易读的问题。

你的代码中有错误,div保持你的页面没有正确形成jQUery Mobile页面。

改变这个:

<div id='fragment-1'>

对此:

<div id='fragment-1' data-role="page">

页面事件仅适用于属性为 data-role =“page”的div容器。

更新

您/我之前的示例制作的工作示例:http://jsfiddle.net/Gajotres/vds2U/55/