0

我在加载时成功运行的 javascript 文件中创建一个链接。我遇到的问题是,当有人单击链接时,JQM 不会使用 AJAX 加载它,而是将其加载到新页面中。我不明白为什么会这样。

这是链接的 HTML:

boxText.innerHTML = "<a href='../home-details/index.php?id=" + home_id + "' class='infowindow'>" + address + "<div class='infowindow-arrow'></div></a>";

以下是页面流程:索引页面 -> 加载页面时呈现标记的地图页面。标记具有包含链接作为内容的信息窗口。这些也会在创建标记时加载。信息窗口链接不使用 AJAX 加载。

4

2 回答 2

0

您可以发布您在检查员中看到的内容吗?jQuery 将动态应用类等,如文档中所述:

http://jquerymobile.com/demos/1.1.0/docs/pages/page-links.html

没有 Ajax 的链接指向其他域或具有 rel="external"、data-ajax="false" 或目标属性的链接将不会使用 Ajax 加载。相反,这些链接将导致整个页面刷新而没有动画过渡。两个属性(rel="external" 和 data-ajax="false")具有相同的效果,但语义不同:链接到另一个站点或域时应使用 rel="external",而 data-ajax=" false" 对于简单地选择域中的页面不通过 Ajax 加载很有用。由于安全限制,框架总是选择链接到外部域的 Ajax 行为。

于 2012-06-13T21:12:13.330 回答
0

仅动态创建的链接会完全重新加载吗?

如果不是,那么 jQM 正在使用 AJAX。您在 url 栏中看到了新地址,因为您可能正在使用支持 pushstate 方法的浏览器(webkit、mozilla)。jQM 是 AJAX 加载页面,然后在 URL 栏中更改地址而不实际加载页面。

您可以通过在 IE9 中打开您的页面来检查这一点。它还不支持 pushstate,所以你会得到你期望的 hashtag url。

您可以通过将 jQM 选项设置为 来更改此pushStateEnabled行为false

于 2012-06-13T21:37:50.510 回答