【问题标题】:Allow scripts in a jQuery Mobile dialog?允许在 jQuery Mobile 对话框中使用脚本?
【发布时间】:2011-11-13 03:18:13
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

    标签: javascript jquery mobile dialog


    【解决方案1】:

    将编辑后的答案发布到问题中:

    我通过将脚本放在页面 div 中来使其工作:

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

    ...把它放在最后。

    一旦我解决了这个问题,它有时会起作用,而其他时候则不起作用。在我意识到按钮的 z-index 更改为 0 之前,我无法弄清楚,这样每当我为该字段选择某些内容时,它就不会优先于 jQuery UI 自动完成。我在按钮上将 z-index 设置为 1(默认为 2,它将 jQUI 的自动完成功能覆盖为 1),现在它似乎可以工作了。

    我知道这里没有太多活动,这可能是以前有人问过的一个问题,但我无法通过谷歌搜索任何关于这个主题的内容来挽救我的生命。希望这对将来的某人有所帮助。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-16
        • 1970-01-01
        • 2023-03-08
        相关资源
        最近更新 更多