2013-02-12 145 views
0

我有一些自定義的jQuery事件我正在使用一個jQuery的移動網站。我在包含jquery-mobile之前包含了這個custom.js,因爲我相信這是正確的行爲。 jquery首先被包含在內。這些文件正在被包含在每個頁面上。在jquery mobile中使用自定義jquery?

<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script> 
<script src="/components/m/js/custom.js"></script> 
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script> 

當我加載我的主索引頁面時,沒有使用custom.js的元素。這是當我點擊一個頁面深入我的問題。所以我點擊一個鏈接來查看在custom.js中有一個事件的藝術家當jquery mobile做它的事情時,我的點擊事件不起作用。

但是,如果我重新加載頁面,自定義點擊事件將工作得很好。

我錯過了什麼?我應該使用.live(「點擊」,而不是隻。點擊?

+0

您是否已嘗試使用live('click')?對我來說,這將是最容易找到的最簡單的方法。 – Aeolun 2013-02-12 02:13:17

+0

我注意到live('click')在觸發時有點作用,但是我的ajax調用不起作用。但是,如果我刷新頁面,它會工作得很好。所以寶貝步驟。 – Mike 2013-02-12 02:14:16

+0

這個更深層的頁面,無論如何,一個多頁(包含多個'div'標籤,包含'data-role =「page」')jQM文件? – peterm 2013-02-12 05:55:28

回答

0

與Gajotres(通過電子郵件從上述評論)溝通後,我們來到了以下結論。

我的自定義JS文件實際上不得不來的JQM文件後

<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script> 
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script> 
<script src="/components/m/js/custom-alt.js"></script> 

而且,這是我的自定義的js文件的樣子:

$(document).bind("pageinit", function() { 
    var btnAddComment = $('#btn-addcomment'); 

    // register functions with jqm framework 
    $(btnAddComment).bind('touchstart mousedown', function(e){ 
     e.preventDefault(); 
     clickCommentAdd(); 
    }); 

    function clickCommentAdd() { 
     $("#form-comment").toggle(); 
     return false; 
    } 
}); 

以前,我是用「mobileint」而不是「pageint」和引用自Gajotres:

原因是,pageinit事件只在加載jQuery Mobile js文件時起作用。我也看到你甚至嘗試過使用mobileinit。那麼 該事件應該在jQuery Mobile js文件之前使用(迄今爲止很好),但是您可以使用它來綁定和單擊事件,因爲您需要加載jQM js文件來初始化頁面元素。

相關問題