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

问题描述 投票:14回答:8

我正在尝试使用jQuery来做类似的事情

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

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

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

jquery click
8个回答
29
投票

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

所以,你做的:

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

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

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

希望这可以帮助。干杯


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
投票

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

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

然后,如果你真的想要,你可以使用你的// run function..每隔几秒就有一个循环


2
投票
 var flag = 0;

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

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

0
投票

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

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


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
})

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属性。


0
投票

如果你按x,x次,你将得到y复选框的除法,这导致jquery boxcheck,这将是一种无效的方式来做这种事情。我希望你在使用.on()函数之前先看看这个

© www.soinside.com 2019 - 2024. All rights reserved.