2013-07-03 103 views
0

我有2個圖像,他們都在同一個div。我已將一張圖片的z-index設置爲-1,並使用margin-bottom將其向下移動。Onclick事件不起作用jquery

這是我的代碼:

<div data-role="page" id="Mycom" class="background"> 
    <div data-role="header" class="header" data-position="fixed" data-tap-toggle="false"></div> 
    <div data-role="content"> 
     <center> 
       <h2>Headlines</></h2> 

      <div> <a href="#" id="indrotate"><img src="Image/right.png" style="width:30%;z-index:-1;margin-bottom:-30% !important;margin-left:70% !important;" /></a> 

       <img src="SlicedImages/bground2.png" id="indimage" style="height:auto; max-height:80%; width:auto; max-width:90%;" /> 
      </div> 
     </center> 
     <center> <a href="#" data-role="none" data-inline="true" data-transition="none"><img src="Image/Next.png" width="200px" height ="10%"></a> 

     </center> 
    </div> 
</div> 
<!-- ind Page end --> 

,在我的js文件我有:

$(document).on('pagebeforeshow','#Mycom',function(e,data){ 
    $('#indrotate').on('click',function(){ 
       alert("indrotate"); 
    }); 
}); 

什麼錯誤,我在做什麼?

+0

你嘗試過'pageshow'嗎? – Satpal

+0

你不需要將它綁定到頁面事件。只要刪除'pagebeforeshow'綁定。 – Omar

回答

1

當jQuery Mobile的單擊事件工作應始終秉行與委託事件綁定:

$(document).on('click','#indrotate',function(){ 
      alert("indrotate"); 
}); 

這就是所謂的委託事件綁定。它不關心元素是否已經存在於DOM內部。它的工作原理是因爲事件綁定到像文檔對象這樣的靜態元素,並且只有當它存在於DOM內時纔會傳播到正確的元素。

工作jsFiddle例如:http://jsfiddle.net/Gajotres/LDLmF/

還有一個其他的可能性。如果您使用多個HTML頁面,而這不是第一頁。如果是這種情況,並且它的javascript在HEAD中,它將被丟棄並且不被執行。閱讀更多關於它在這ARTICLE,或找到它HERE

+0

感謝您的答案。但我有一個圓形的圖像,頂部的圖像完全來自圓形圖像的邊界。我想以這種方式修復圖像。由於頂部圖像與圓形圖像的邊界一起出現,因此'on('click',function())'方法不起作用。 – Beginner