如何“如果点击其他……”

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

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

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

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

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

所以,你做的:

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

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

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

希望这可以帮助。 干杯

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

 var hasBeenClicked = false; jQuery('#id').click(function () { hasBeenClicked = true; }); if (hasBeenClicked) { // The link has been clicked. } else { // The link has not been clicked. } 

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

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

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

  var flag = 0; $('#target').click(function() { flag = 1; }); if (flag == 1) { alert("Clicked"); } else { alert("Not clicked"); } 

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

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

你可能实际上是指不通过点击来hover元素,对吧?

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

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

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

的jsfiddle

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

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