Javascript 允许一个元素继承另一个元素的所有事件
例如,假设我有两个链接,A和B。 如果用户将鼠标悬停在a上,将触发B的悬停事件。与所有其他事件类似,如onlick、mouseover等 我不希望像这样手动添加事件:Javascript 允许一个元素继承另一个元素的所有事件,javascript,jquery,Javascript,Jquery,例如,假设我有两个链接,A和B。 如果用户将鼠标悬停在a上,将触发B的悬停事件。与所有其他事件类似,如onlick、mouseover等 我不希望像这样手动添加事件: $('a#A').click(function(){ $('a#B').trigger('click'); }); 谢谢 $('linkDiv').each( function() { $('a#A').click( function() { $('a#B').trigger('click');} });
$('a#A').click(function(){
$('a#B').trigger('click');
});
谢谢
$('linkDiv').each( function() {
$('a#A').click( function() {
$('a#B').trigger('click');}
});
使用foreach/each()jQuery函数指定希望在每个
或
使用foreach/each()jQuery函数指定希望在每个
或您可以通过以下多种事件执行此操作:
$('a#A').on('click mouseenter mouseleave', function(e){
$('a#B').trigger(e.type);
});
这将触发#B
上绑定的任何指定事件,如:
$("#B").on({
mouseenter: function() {
this.style.color = "#B4B4B4";
},
mouseleave: function() {
this.style.color = "#000";
}
});
现在让我们将所有事件绑定到#B
并用#A
触发它们,以使其变得非常低效:
$("#B").on({
mouseenter: function() {
this.style.color = "#B4B4B4";
},
mouseleave: function() {
this.style.color = "#000";
}
});
var events = [];
$.each($._data($("#B").get(0), "events"), function(i, e) {
events.push(i); //gets all events currently bound to #B
});
$('a#A').on(events.join(' '), function(e){ //and triggers them with #A
$('a#B').trigger(e.type);
});
您可以通过以下多种事件执行此操作:
$('a#A').on('click mouseenter mouseleave', function(e){
$('a#B').trigger(e.type);
});
这将触发#B
上绑定的任何指定事件,如:
$("#B").on({
mouseenter: function() {
this.style.color = "#B4B4B4";
},
mouseleave: function() {
this.style.color = "#000";
}
});
现在让我们将所有事件绑定到#B
并用#A
触发它们,以使其变得非常低效:
$("#B").on({
mouseenter: function() {
this.style.color = "#B4B4B4";
},
mouseleave: function() {
this.style.color = "#000";
}
});
var events = [];
$.each($._data($("#B").get(0), "events"), function(i, e) {
events.push(i); //gets all events currently bound to #B
});
$('a#A').on(events.join(' '), function(e){ //and triggers them with #A
$('a#B').trigger(e.type);
});
你知道你可以在选择器中加入它们,比如
$('A,'B')。在('mouseenter'…)
@adeneo上-这仍然适用于单个元素。当用户将鼠标悬停在a上时,它不会触发b.hover,而OP似乎正在寻找a。是的,但如果我将鼠标悬停在a上,则不会触发b的鼠标悬停事件。@techfoobar-javascript中没有悬停事件,因此,即使您的计算机中有跳舞的北极熊,您也无法触发悬停事件。@adeneo-我指的是jquery为其提供了.hover助手的鼠标悬停和退出事件。我觉得这很明显。:-)你知道你可以在选择器中加入它们,比如$('#A,#B')。在('mouseenter'…)
@adeneo上-这仍然适用于单个元素。当用户将鼠标悬停在a上时,它不会触发b.hover,而OP似乎正在寻找a。是的,但如果我将鼠标悬停在a上,则不会触发b的鼠标悬停事件。@techfoobar-javascript中没有悬停事件,因此,即使您的计算机中有跳舞的北极熊,您也无法触发悬停事件。@adeneo-我指的是jquery为其提供了.hover助手的鼠标悬停和退出事件。我觉得这很明显。:-)谢谢,但我的意思是,附加到一个元素的所有事件都需要由另一个元素继承。您可以在jQuery中复制此代码一次,然后根据需要将按钮/链接放在任意位置。jQuery中没有“自动生成此链接x次”函数。您可以在服务器端使用PHP多次生成页面内容,这是一种潜在的方法,可以创建更多的链接节,而无需写出一堆内容,但它们都是相同的(即,在一个页面中没有唯一的URL)。谢谢,但我的意思是,附加到一个元素的所有事件都需要由另一个元素继承。您可以在jQuery中复制此代码一次,然后根据需要将按钮/链接放在任意位置。jQuery中没有“自动生成此链接x次”函数。您可以在服务器端使用PHP多次生成页面内容,这是一种潜在的方法,可以创建更多的链接节,而无需写出一堆内容,但它们都是相同的(即,在a中不会有唯一的URL)。谢谢@adeneo。我希望jquery对此有一些函数调用。但我认为这是解决这个问题最优雅的办法!谢谢@adeneo。我希望jquery对此有一些函数调用。但我认为这是解决这个问题最优雅的办法!