2012-06-13 74 views
0

我正在加載成功運行的JavaScript文件中創建鏈接。我遇到的問題是,當有人點擊鏈接時,JQM不會將其加載到AJAX中,而是將其加載到新頁面中。我不明白爲什麼會發生這種情況。JQuery手機不加載ajax鏈接

下面是該鏈接的HTML:

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

這裏是頁面的流程: 索引頁 - >加載頁面時呈現標記地圖頁面。這些標記具有以鏈接作爲內容的infowindows。標記創建時也會加載這些標記。 infowindow鏈接不使用AJAX加載。

回答

0

你可以發佈你在督察看到的內容嗎? jQuery將被動態地被施加的類和例如,如文檔中所述:

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

鏈接沒有Ajax 鏈接指向其他結構域或具有相對=「外部」,DATA- ajax =「false」或目標屬性將不會被加載Ajax。相反,這些鏈接將導致整個頁面刷新,而沒有動畫過渡。兩個屬性(rel =「external」和data-ajax =「false」)具有相同的效果,但具有不同的語義含義:鏈接到另一個站點或域時應使用rel =「external」,而data-ajax =「 false「對於簡單地選擇通過Ajax加載域中的頁面非常有用。由於安全限制,框架始終會選擇不包含Ajax行爲的外部域的鏈接。

+0

我看了一下使用督察,鏈接沒有包裹在任何東西從jquery手機,只是谷歌地圖。有沒有辦法監聽點擊事件並讓jquery mobile使用ajax加載它?我相信這會起作用。 – bmilleker

+0

這是一個截圖,因爲複製出檢查員很粗糙:http://grab.by/e9w0 – bmilleker

0

只有動態創建的鏈接才能完全重新加載?

如果不是,那麼jQM IS使用AJAX。您在url欄中看到新地址,因爲您可能正在使用支持pushstate方法的瀏覽器(webkit,mozilla)。 jQM是AJAX加載頁面,然後在URL欄中更改地址而不實際加載頁面。

你可以通過在IE9中打開你的頁面來檢查。它不支持pushstate,所以你會得到你期望的hashtag url。

您可以通過將jQM選項pushStateEnabled設置爲false來更改此行爲。

+0

它使用從索引到地圖頁面的ajax。但地圖頁面上的鏈接正在使用ajax進行加載。 – bmilleker