jQuery:如何检测是否未单击元素?

时间:2012-09-16 05:06:32

标签: jquery jquery-callback jquery-click-event

我想知道是否可以检测是否未点击某个元素。这是我的代码:

$("#mpElement").myFeature({
            .........
            .........
            .........
    afterDo: function() {
        // This if-else statement has to go inside "when not clicked" condition. 
        // Not sure how to do this...
        if($(".myButton").last().hasClass("selected")) {
            $(".myButton").first().addClass("selected");
            $(".myButton").last().removeClass("selected");
        } else {
            $(".selected").removeClass("selected").next().addClass("selected");
        }
        $(".myButton").on("click", function(){
            $(".myButton").removeClass("selected");
            $(this).closest(".myButton").addClass("selected"); 
        });
    }
});

您会注意到 $(“。myButton”)。on(“click”,function(){用于检测点击事件。我想将if-else语句放在此函数之上在未点击条件时。不知道该怎么做。

1 个答案:

答案 0 :(得分:11)

您可以将data属性作为点击检测器维护到该元素。

示例:

<button class="myButton" data-clicked="no">My Button</button>

在这里,我将data-clicked=no设置为初始配置。

click事件集data-clickedyes之内,如:

$('.myButton').on('click', function() {
  $(this).data('clicked', 'yes');
});

现在检查以下data-clicked属性:

var isClicked = $('.myButton').data('clicked');

if( isClicked == 'yes') {
   // do something
} else {
  // do something else
}