Jquery 如果它是第一次单击元素
我需要我的脚本在第一次单击元素时执行某些操作,并在单击 2、3、4 等时继续执行不同的操作,
$('selector').click(function() {
//I would realy like this variable to be updated
var click = 0;
if (click === 0) {
do this
var click = 1;
} else {
do this
}
});//end click
我认为它应该依赖于变量,但我不知道如何更新从这里开始的变量任何帮助都会很棒。
I need my script to do something on the first time an element is clicked and continue to do something different on click 2,3,4 and so on
$('selector').click(function() {
//I would realy like this variable to be updated
var click = 0;
if (click === 0) {
do this
var click = 1;
} else {
do this
}
});//end click
really I think it should rely on the variables but I can't think of how to update the variable from here on out any help would be awesome.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
看一下 jQuery 的
.data()
方法。考虑您的示例:请参阅此处的工作示例: http://jsfiddle.net/uaaft/
Have a look at jQuery's
.data()
method. Consider your example:See a working example here: http://jsfiddle.net/uaaft/
使用 data 来保存元素的状态。
在您的点击处理程序中,
使用
检索值并
来设置它。
注意:如果尚未设置,$(this).data('number_of_clicks') 将返回 false
编辑:固定链接
Use data to persist your state with the element.
In your click handler,
use
to retrieve the value and
to set it.
Note: $(this).data('number_of_clicks') will return false if it hasn't been set yet
Edit: fixed link
另一种选择可能是拥有两个函数,并使用
one
绑定一个函数$(document).ready() 中的函数(或绑定处理程序的任何位置),并在该函数中,使用bind 或<代码>单击。
例如
Another alternative might be to have two functions, and bind one using the
one
function in$(document).ready()
(or wherever you are binding your handlers), and in that function, bind the second function to be run for all subsequent clicks usingbind
orclick
.e.g.
这在普通 Js 中非常简单。这是使用正确的、不同的点击处理程序
文档,CanIUse
This is super easy in vanilla Js. This is using proper, different click handlers
Documentation, CanIUse
如果您只需要固定行为的序列,您可以这样做:
$('selector').toggle(function(){...}, function(){...}, function(){...}, ...);
切换方法中的事件处理程序将被有序调用。
If you just need sequences of fixed behaviors, you can do this:
$('selector').toggle(function(){...}, function(){...}, function(){...},...);
Event handlers in the toggle method will be called orderly.
$('#foo').one('click', function() {
alert('这只显示一次。');
});
这会将点击事件绑定到相应的 Html 元素一次,并在第一次事件渲染后自动取消绑定。
或者您也可以执行以下操作:
$("#foo").bind('click',function(){
// 某些活动
$("#foo").unbind("click");
// 将其绑定到其他一些事件处理程序。
});
$('#foo').one('click', function() {
alert('This will be displayed only once.');
});
this would bind click event to Corresponding Html element once and unbind it automatically after first event rendering.
Or alternatively u could the following:
$("#foo").bind('click',function(){
// Some activity
$("#foo").unbind("click");
// bind it to some other event handler.
});