Jquery在DIV中获取Clicked DIV类

时间:2014-04-18 17:14:12

标签: javascript jquery html css html5

我试图弄清楚用户在DIV容器内点击了什么按钮,但我必须在这里做错事。我一直收到无属性错误。谁能告诉我,如果我做错了什么?这是我的JS:

// 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>

感谢您的帮助

2 个答案:

答案 0 :(得分:7)

您可以使用this来获取课程。

$(this).attr("class")

您使用的e不是元素,而是点击事件。


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

答案 1 :(得分:2)

在您的情况下,您可以在e事件的回调方法中使用 click 参数。

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(带有简单的示例代码)