在jQuery Mobile对话框中允许脚本?

时间:2011-11-13 03:18:14

标签: javascript jquery mobile dialog

我在jQuery Mobile中有一个主页面。它有一个项目列表,当您单击一个项目时,它会加载有关它的信息。为了动态加载信息,它调用外部页面并将其全部启动。该外部页面上有一个小脚本,允许用户处理单击按钮(向服务器提交一些信息)。

单独加载页面时,它可以很好地处理脚本。将其作为对话框加载时,脚本不会加载。

我尝试将脚本放在页面内部。我尝试将脚本放在加载对话框的主页面上。它都不起作用。我已经使用控制台进行了调试,我无法读取任何特定于外部页面对话框的脚本。

是否有一些技巧,或者对话框只是忽略任何脚本?有办法解决吗?在解决此问题之前,有没有办法将页面完全设置为看起来像对话框?

编辑: 我只是在没有对话框的情况下完成了它,它仍在这样做。如果我在关闭AJAX时单独加载页面,一切正常。我需要保留页面过渡和加载对话框,因此不能选择将其关闭。

我目前正在头部的外部页面中使用:

<script>
$(document).delegate("#productinfo", "pagecreate", function(){
    //code here
});
</script>

2 个答案:

答案 0 :(得分:1)

  

将回答编辑到问题中:

我通过将脚本放在页面div中来实现它:

<div data-role="page" id="productinfo"> <!-- /markup--> </div> 

......并在一切之后将它放在最后。

一旦我解决了这个问题,它就会工作一段时间而不是其他工作。直到我意识到按钮的z-index被更改为0才能弄明白,所以每当我为该字段选择内容时,它都不会优先于jQuery UI自动完成。我在按钮上将z-index设置为1(默认值为2,将1替换为jQUI的自动完成),现在似乎可以正常工作。

我知道这里没有太多的活动,这可能是之前被问过的一个问题,但我无法通过谷歌来挽救我在这个主题上的生活。希望这有助于将来的某个人。

答案 1 :(得分:1)

我通过将js脚本放在主页上解决了这个问题:

$(document).on("pageinit", "#my-dialog-page-id", function(e) {
    // put your js here
});