2014-04-18 156 views
3

我想弄清楚用戶點擊DIV容器內的按鈕,但我必須在這裏做錯了什麼。我不斷收到一個沒有屬性的錯誤。任何人都可以告訴我,如果我做錯了什麼?這裏是我的JS:Jquery獲得類DIV內點擊DIV

// Bind ButtonClicks 
$('#jplayers .button').on("click",function(e){ 
    alert("Class :" + e.attr("class")); 
    // Determin what button 
    if( e.attr("class").indexOf("play") > 0){ 
     // Play Clicked 
     player.jPlayer("play"); 
    }else{ 
     // Pause Clicked 
     player.jPlayer("pause"); 
    } 
}); 

這裏是我的HTML:

<div id="jplayers"> 
     <!--First Player--> 
     <div id="zen_1"> 
      <span class="player"></span> 
      <span class="circle"></span> 
      <span class="progress"></span> 
      <span class="buffer"></span> 
      <span class="drag"></span> 
      <div class="button"> 
       <span class="icon play"></span> 
       <span class="icon pause"></span> 
      </div> 
     </div> 
     <!--Second Player--> 
     <div id="zen_2"> 
      <span class="player"></span> 
      <span class="circle"></span> 
      <span class="progress"></span> 
      <span class="buffer"></span> 
      <span class="drag"></span> 
      <div class="button"> 
       <span class="icon play"></span> 
       <span class="icon pause"></span> 
      </div> 
     </div> 
    </div> 

感謝所有幫助

+0

e是的情況下,不是元素點擊。使用'this'來訪問元素 – juvian

+0

,儘管如果你願意使用這個事件,我想你可以通過使用e.currentTarget來訪問元素。但使用這個更有意義:) – bottens

回答

2

在這裏,你的情況,你可以在click事件回調方法使用e參數。

e.target返回用戶點擊的相應元素。

$('#jplayers').on("click", function (e) { 
    // using this you can access the specific element 
    var className = $(e.target).prop('class'); 
    if (className.indexOf("play") !== -1 || className.indexOf('pause') !== -1) { 
     alert(className); 
     // you can access it using $(e.target) 
    } 
}); 

JSFiddle(用一個簡單的示例代碼)

+0

這仍然給我類「按鈕」 – user3167249

+0

我需要得到圖標播放或圖標停止 – user3167249

+0

@ user3167249你可以檢查' e.target'這將確保通過'play'獲得類名稱 – Praveen

7

您可以通過使用this獲取類。

$(this).attr("class") 

您使用的e不是元素,但Click事件。


$('#jplayers .button').on("click",function(e){ 
    alert("Class :" + $(this).attr("class")); 
}); 
+0

這給了我需要圖標播放或圖標停止的類「按鈕」。 – user3167249

+0

找到所有的圖標類使用'$(this).find(「。icon」)' – Hatsjoem