所以我使用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
});
任何建议都将不胜感激。
答案 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,它将被执行。