我正在尝试使用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..
每隔几秒就有一个循环
var flag = 0;
$('#target').click(function() {
flag = 1;
});
if (flag == 1)
{
alert("Clicked");
}
else
{
alert("Not clicked");
}
这就是你所需要的:http://api.jquery.com/click/
拥有“else”不适用于这种情况,否则意味着“没有点击”,在这种情况下你不会做任何事情。
你可能实际上是指不通过点击来悬停元素,对吧?
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');
}
});
您可以使用event.srcElement
检索指向所单击元素的指针。
所以你要做的就是检查被点击元素的id属性。
如果你按x,x次,你将得到y复选框的除法,这导致jquery boxcheck,这将是一种无效的方式来做这种事情。我希望你在使用.on()函数之前先看看这个