如何“如果点击其他……”
我正在尝试使用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属性。