JQuery mobile没有加载ajax链接

时间:2012-06-13 20:46:45

标签: jquery jquery-mobile

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

以下是链接的HTML:

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

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

2 个答案:

答案 0 :(得分: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行为中链接到外部域。

答案 1 :(得分:0)

只有动态创建的链接才能完全重新加载吗?

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

您可以在IE9中打开您的页面进行检查。它还不支持pushstate,因此您将获得您期望的hashtag url。

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