【问题标题】:Where should I place jQuery Mobile pages generated dynamically我应该在哪里放置动态生成的 jQuery Mobile 页面
【发布时间】:2014-08-05 18:32:22
【问题描述】:

有谁知道为动态生成的 jQuery Mobile 页面添加 HTML 代码的最佳位置?

我一直将它们添加到 <body> 的末尾,但是,这会导致其他 jQuery 移动页面出现问题。

我尝试将 jQuery Mobile 页面添加到页面末尾的 div 中,但是,它们的 id 不再可以通过 hrefs 访问。

代码链接:http://jakeserver.com/Apps/BostonLandmarks/B11/index.html

有什么想法吗?

【问题讨论】:

  • 正文正确。添加新页面后,您在其他页面上看到了什么问题?
  • @ezanker 我尝试添加谷歌地图,其中 JS 创建了 html 并将其放入 div 中。除非 底部的页面被注释掉,否则地图容器不会显示。这一切都验证了。有什么想法吗?
  • 我不认为您可以在 jsFiddle 中重新创建问题?
  • @ezanker 您介意我将链接发布到 HTML 和 JS 文件吗(在 JS fiddle 中可能看起来很混乱)?
  • @ezanker 我已将链接添加到帖子中。如果您单击它并导航到地图屏幕,您将看到它是空白的;但是,当没有调用“assembleLandmarkPages”函数时(在 landmarks.js 中),地图看起来很好。有什么想法吗?

标签: javascript jquery html jquery-mobile


【解决方案1】:

我建议您将单个页面 div 中的所有脚本移动到全局脚本标记,然后在页面的 pagecreate 事件中运行该代码,例如:

$(document).on('pagecreate','#landmarks', function(){
    function setNewActiveTab(newTab){
        $(".LandmarksTab").removeClass("ui-btn-active");
        $(".LandmarksTab").removeClass("ui-btn-active");
        $(".MoreTab").removeClass("ui-btn-active");
        $(newTab).addClass("ui-btn-active");
    }

    assembleRows(landmarksArray);
    assembleLandmarkPages(landmarksArray);
    determineMapScreen();
});

这是一个基于您的代码的工作 jsFiddle

这将确保代码在 jQM 的页面创建/增强方面在正确的时间运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-03
    • 2021-09-30
    • 2013-03-26
    • 2020-08-11
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多