如何在jQuery Mobile创建新页面div后执行自定义js?

时间:2011-06-04 19:46:29

标签: javascript jquery jquery-mobile

所以我使用Django 1.3和jQuery Mobile作为webapp。在尝试创建新功能或覆盖jQM的某些功能时,我似乎无法在页面创建时执行某些代码。我仍然对js很苛刻,但这似乎比我自己更大 How to execute JavaScript after a page is transitioned with jQuery Mobile

我最终将js片段放在页面本身上,这似乎不是处理它们有时工作的正确方法,有时也不是。我在Chrome的脚本控制台中尝试了相同的命令,选择器和命令似乎工作正常。

的示例:

隐藏滑块上的数字输入我最终将此脚本标记放在模板本身中,我知道这是不好的形式,但我不确定如何让它工作:

<script>
    $('#form_div > input').hide();
</script>

尝试执行类似的代码段:

<script>
        console.log("Focus snippet!");
        $('.ui-input-text').blur(function(){
            console.log("focus was changed!");
        });
</script>
除了初始的console.log之外,

没有产生任何结果,但是我可以通过脚本控制台执行它并且工作正常。

我在其他几篇文章中看到过,但似乎没有人清楚地回答这个问题,我不确定如何以正确的方式完成这项工作。

这似乎是最接近的建议,但我无法使其发挥作用: Jquery mobile: how to execute custom jquery code in page

$(“body”).delegate(“div[data-role*='page']“, “pageshow”, function(){

// Your code here. It is good to check to not run unnecessary code

});

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:1)

请查看此处的文档:http://jquerymobile.com/demos/1.0a4.1/#docs/api/events.html

$('div').live('pageshow',function(event, ui){
  alert('This page was just hidden: '+ ui.prevPage);
});

$('div').live('pagehide',function(event, ui){
  alert('This page was just shown: '+ ui.nextPage);
});

一个小小的注意事项是,在任何页面上执行的所有javascript都必须放在基页中(例如:index.html)。如果您在page2.html中为page2.html添加javascript,则不会执行该操作。如果你在index.html中为page2.html添加javascript,它将被执行。