怎么做“如果点击其他......”

时间:2011-07-08 19:14:51

标签: jquery click

我正在尝试使用jQuery来执行类似

的操作
if(jQuery('#id').click) {
    //do-some-stuff
} else {
    //run function2
}

但是我不确定如何使用jQuery做到这一点?任何帮助将不胜感激。

编辑:我正在尝试运行一个函数,如果单击了#id并且特别是没有单击它然后运行函数2?即我需要首先检查在运行function2之前是否已点击#id?

8 个答案:

答案 0 :(得分:29)

您应该避免使用全局变量,并且更喜欢使用.data()

所以,你会这样做:

jQuery('#id').click(function(){
  $(this).data('clicked', true);
});

然后,检查是否已点击并执行操作:

if(jQuery('#id').data('clicked')) {
    //clicked element, do-some-stuff
} else {
    //run function2
}

希望这会有所帮助。干杯

答案 1 :(得分:8)

这样做的方法是使用更高范围的布尔值:

var hasBeenClicked = false;
jQuery('#id').click(function () {
    hasBeenClicked = true;
});

if (hasBeenClicked) {
    // The link has been clicked.
} else {
    // The link has not been clicked.
}

答案 2 :(得分:2)

点击是一个事件;你不能查询一个元素并询问它是否被点击。怎么样:

jQuery('#id').click(function () {
   // do some stuff
});

然后,如果你真的想要,你可以使用// run function..

每隔几秒钟执行一次循环

答案 3 :(得分:2)

 var flag = 0;

 $('#target').click(function() {
    flag = 1;
 });

 if (flag == 1)
 {
  alert("Clicked");
 }
 else
 {
   alert("Not clicked");
 }

答案 4 :(得分:0)

这就是您所需要的:http://api.jquery.com/click/

拥有“else”并不适用于这种情况,否则意味着“没有点击”,在这种情况下你就不会做任何事情。

答案 5 :(得分:0)

您实际上可能是指不通过单击来悬停元素,对吧?

jQuery('#id').click(function()
{
    // execute on click
}).hover(function()
{
    // execute on hover
});

澄清您的问题,然后我们就能更好地理解。

如果没有点击某个元素,请执行setInterval继续此过程,直到点击为止。

var checkClick = setInterval(function()
{
    // do something when the element hasn't been clicked yet
}, 2000); // every 2 seconds

jQuery('#id').click(function()
{
    clearInterval(checkClick); // this is optional, but it will
                               // clear the interval once the element
                               // has been clicked on

    // do something else
})

答案 6 :(得分:0)

也许你正在寻找这样的东西:

$(document).click(function(e)
   {
       if($(e.srcElement).attr('id')=='id')
       {
           alert('click on #id');
       }
       else
       {
            alert('click on something else'); 
       }
   });

<强> jsfiddle

您可以使用event.srcElement检索指向所点击元素的指针。

所以你要做的就是检查点击元素的id属性。

答案 7 :(得分:0)

如果按x,则x的次数将使复选框除以y,这将导致jquery boxcheck,这将是做这种事情的无效方法。希望您在使用.on()函数之前先了解一下