2011-12-16 58 views
2

我用jQuery Mobile創建了一個web應用程序,並使用Cloudmade Leaflet包含了一張地圖。該地圖具有從數據庫中的座標生成的標記。每個標記都是對項目的描述,以及點擊標記時彈出窗口中顯示的鏈接。所有這一切工作正常。該鏈接訪問一個php文件,該文件從數據庫中請求有關該項目的更多信息。jQuery Mobile和Cloudmade Leaflet鏈接不起作用

我遇到的問題是點擊彈出窗口中的鏈接,而不是使用jQuery轉換來顯示帶有更多信息的頁面,鏈接強制瀏覽器打開並在其中顯示內容。

我認爲jQuery Mobile看到鏈接並在點擊時應用ajax加載和轉換時存在一些問題。

有誰知道這是否可能,以及需要做些什麼才能使其正常工作?

回答

0

我開發jQuery Mobile的,默認情況下一個jQuery Mobile的形式使得呼叫通過AJAX的服務器,你應該添加data-ajax="false"這樣的:

<form action="forms-sample-response.php" method="get" data-ajax="false" class="ui-body ui-body-a ui-corner-all"> 

完整的示例:

http://jquerymobile.com/demos/1.0/docs/forms/forms-sample.html

+0

感謝您的答覆亞歷克斯。 我沒有使用氣泡表格,我使用的是HTML標籤。 這個想法是,每個氣泡都有一個到php文件的文本鏈接,從服務器獲取屬性的詳細信息,並在Jquery Mobile中顯示詳細信息,但是會跳出移動應用程序並打開Safari瀏覽器並顯示詳細信息在那裏。 – Barry 2012-01-17 08:23:20

1

Barry,

你需要做的是在目標jQuery移動鏈接中加入'#'鏈接。例如,如果你有一個名爲infoPage這樣一個JQM頁面:

<div data-role="page" id="infoPage" data-add-back-btn="true"> 
    <header data-role="header" data-theme="c"> 
    <h1>Video tests</h1> 
    </header> 
    <div data-role="content"> 
    This is where more info would appear... 
    </div> 
</div> 

然後,您可以創建這樣的標記:

var popup = new L.Popup(); 
popup.setLatLng(e.latlng); 
popup.setContent("More <a href='#infoPage'>info</a> here."); 
map.openPopup(popup); 

公告中的href =「#infoPage」 - 這就是標準JQM方式切換頁面。 希望能爲你解決它(我只是在這裏試了一下,它的工作原理)

......以防萬一你在運行你的'應用程序'作爲PhoneGap應用程序而不是純粹的webapp,點擊鏈接可能會導致PhoneGap在瀏覽器中啓動內容,而不是保留在其自己的Web視圖中。這是回答其他地方:

Links in remote JQueryMobile sites in a PhoneGap app open safari

What controls whether PhoneGap opens an external browser/Safari?

http://forum.jquery.com/topic/phonegap-jquerymobile-ajax-links-opening-in-browser-window

open link inside the phonegap program