2013-02-20 76 views
-1

我已經實現了jQuery和jQuery手機的彈出窗口,但經過一些測試後,我注意到jQuery正在接管所有錨點。如果我註釋掉jQuery腳本的鏈接,那麼我的錨點和我的錨點都按預期工作,如果我取消註釋,那些錨點會再次被接管,並且不會允許href正確地通過。任何人都知道如何解決這個問題,至少可以說是令人惱火。下面是示例...jQuery接管所有錨定標記

<div> 
<ul> 
    <li><a href="http://www.somesite.com">Somesite</a></li> 
</ul> 
</div> 
<div> 
<a href="#popupVideo" data-rel="popup" data-position-to="window" data-inline="true">Click</a> 
<div data-role="popup" id="popupVideo" data-overlay-theme="a" data-theme="d" data-tolerance="15,15" class="ui-content"> 
    <iframe width="560" height="315" src="http://www.somevideo.com" frameborder="0" allowfullscreen></iframe> 
</div> 
</div> 

    $(document).on("pageinit", function() { 
     winW = window.innerWidth; 
     winH = window.innerHeight; 

     $("#popupVideo iframe") 
      .attr("width", 0) 
      .attr("height", 0); 

     $("#popupVideo").on({ 
      popupbeforeposition: function() { 
       var size = scale(winW, winH, 15, 1), 
        w = size.width, 
        h = size.height; 

       $("#popupVideo iframe") 
        .attr("width", w) 
        .attr("height", h); 
      }, 
      popupafterclose: function() { 
       $("#popupVideo iframe") 
        .attr("width", 0) 
        .attr("height", 0);  
      } 
     }); 
    }); 

然後,我有附帶從jQuery的例子正確的代碼,沒有在該代碼是錨具體是ID具體。另外,如果我刪除了調整彈出窗口的腳本,它仍然不起作用,我唯一鏈接的是jQuery文件。我使用最新的jQuery,如果這有助於1.9.1和移動1.3.0我使用的是1.2.0,但也許是新手會解決這個問題,但無濟於事。先謝謝你。

+2

向我們展示您的JavaScript代碼。 – DiMono 2013-02-20 18:40:47

+2

嚴重的是,爲什麼**不會**你認爲你的Javascript代碼是重要的包括?特別是對於這個問題 – Ian 2013-02-20 18:42:11

+0

我添加了JS,即使我刪除了代碼,鏈接仍然不起作用,並且彈出窗口仍在嘗試發生。這只是彈出窗口的大小...... – John 2013-02-20 18:45:58

回答

1

我很確定你指的是jQuery手機的默認行爲。 jQuery Mobile中錨點標籤的默認行爲是使用ajax請求:

jQuery Mobile旨在使用簡單的頁面鏈接約定。 實質上,您可以像往常一樣鏈接頁面和資源,並且 jQuery Mobile會在單頁面 模型中自動處理頁面請求,並儘可能使用Ajax。如果無法使用Ajax(例如, 非同域網址,或者使用 鏈接上的某些屬性指定),則會使用正常的http請求。

該模型的目標是讓開發人員創建使用 最佳實踐的網站 - 在普通的鏈接會「只是工作」沒有任何 特別的配置 - 同時創造一個豐富的,天然樣的經驗 不能是用標準的HTTP請求實現。

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

此外:

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

在1.1版本中,我們添加了支持數據的Ajax =「假」一個 父容器,它允許你排除了大量的從阿賈克斯導航系統鏈接 上。這避免了將此 屬性添加到容器中的每個鏈接的需要。要激活此功能,$ .mobile.ignoreContentEnabled必須設置爲true。 請在使用之前檢查配置默認值,並設置此 選項。

注:當建立了AJAX 導航系統在全球範圍內禁用或經常在 各個鏈接禁用一個jQuery Mobile應用程序,我們建議禁用$ .mobile.pushStateEnabled 全局配置選項來避免一些不一致的導航行爲 瀏覽器。

+0

我感謝您的快速和直接的迴應。我想我將不得不爲這個頁面找出一個更好的解決方案。再次感謝。 – John 2013-02-20 18:54:02

+0

你總是可以排除一個父對象來處理大量的鏈接。 – danielrsmith 2013-02-20 18:55:40