gpt4 book ai didi

javascript - 在 jQuery 中绑定(bind) "up"元素?这是可能的?

转载 作者:太空宇宙 更新时间:2023-11-04 15:40:22 24 4
gpt4 key购买 nike

例子:

$(X).bind('click', function() { alert( 'Two' ); });
$(X).bind('click', function() { alert( 'Three' ); });
$(X).bind('click', function() { alert( 'Four' ); });
$(X).bind('click', function() { alert( 'Five' ); });

**$(X).bindUp('click', function() { alert( 'One' ); });**

当用户点击 X 时,输出应该是:

alert( 'One' );
alert( 'Two' );
alert( 'Three' );
alert( 'Four' );
alert( 'Five' );

这可能吗??

谢谢......................................

最佳答案

对于简单的情况,我认为你可以这样做:

示例: http://jsfiddle.net/uEEzt/2/

$.fn.bindUp = function(type, fn) {

this.each(function() {
$(this).bind(type, fn);

var evt = $.data(this, 'events')[type];
evt.splice(0, 0, evt.pop());
});
};

当您使用这个 .bindUp() 插件时,它只是执行一个普通的 .bind(),然后从末尾删除事件,并将其放置在开始。

同样,这仅适用于简单的情况。


编辑:使它与多个事件一起工作应该很简单,但不要尝试将它与 hover 一起使用。


编辑:这是一个适用于多个(空格分隔)事件的版本(同样,不要与 hover 一起使用):

示例: http://jsfiddle.net/uEEzt/4/

$.fn.bindUp = function(type, fn) {

type = type.split(/\s+/);

this.each(function() {
var len = type.length;
while( len-- ) {
$(this).bind(type[len], fn);

var evt = $.data(this, 'events')[type[len]];
evt.splice(0, 0, evt.pop());
}
});
};

编辑:修复了“多”版本中 len 变量未重置的错误。

关于javascript - 在 jQuery 中绑定(bind) "up"元素?这是可能的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3915726/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com