Jquery 复制onclick事件
我有一个jQuery函数,它基本上使整个表行都可以单击,但是复制一个链接并复制行中每个子单元格中的链接。在我的项目中,一些链接可能有onclick javascript事件,因此我需要我的函数也能够复制这些事件,但我在这样做时遇到了麻烦 以下是我当前的功能:Jquery 复制onclick事件,jquery,javascript-events,Jquery,Javascript Events,我有一个jQuery函数,它基本上使整个表行都可以单击,但是复制一个链接并复制行中每个子单元格中的链接。在我的项目中,一些链接可能有onclick javascript事件,因此我需要我的函数也能够复制这些事件,但我在这样做时遇到了麻烦 以下是我当前的功能: jQuery.fn.linker = function(selector) { $(this).each(function() { var from = $(selector, this); if (
jQuery.fn.linker = function(selector) {
$(this).each(function() {
var from = $(selector, this);
if (from.length > 0) {
var href = from.attr('href');
if (href) {
var link = $('<a href="' + $(selector, this).attr('href') + '"></a>').css({
'text-decoration': 'none',
'display': 'block',
'padding': '0px',
'cursor': 'pointer',
'color': $(this).css('color')
});
$(this).children()
//.css('padding', '0')
.wrapInner(link);
}
}
});
};
2) 这一个似乎执行正常,但点击复制的链接没有任何作用
link.attr('onclick',from.attr('onclick'));
事件处理程序在元素上继续存在。你不能使用 $('bla')。单击…或任何类似的实现方法 相反,您必须使用以下方法之一:
$('bla').live('click', function(){...});
或
live和delegate之间的区别在于,delegate可以很容易地存在于链中。作为反对生存的人。委托是一项新功能
对于使用clone()函数的单个元素,需要在clone中传入一个true参数以保留原始事件处理程序。这不是你的情况,但知道它是有用的
$('.bla').clone(true).appendTo('body or something');
事件处理程序在元素上继续存在。你不能使用 $('bla')。单击…或任何类似的实现方法 相反,您必须使用以下方法之一:
$('bla').live('click', function(){...});
或
live和delegate之间的区别在于,delegate可以很容易地存在于链中。作为反对生存的人。委托是一项新功能
对于使用clone()函数的单个元素,需要在clone中传入一个true参数以保留原始事件处理程序。这不是你的情况,但知道它是有用的
$('.bla').clone(true).appendTo('body or something');
从jQuery 1.4开始,您可以使用
.clone()
完成此操作
这指示它复制数据和事件(事件保存在.data('events')
中)
您的链接创建可以如下所示:
var link = from.clone(true).css({
'text-decoration': 'none',
'display': 'block',
'padding': '0px',
'cursor': 'pointer',
'color': $(this).css('color')
});
从jQuery 1.4开始,您可以使用
.clone()
完成此操作
这指示它复制数据和事件(事件保存在.data('events')
中)
您的链接创建可以如下所示:
var link = from.clone(true).css({
'text-decoration': 'none',
'display': 'block',
'padding': '0px',
'cursor': 'pointer',
'color': $(this).css('color')
});
您可以在复制后重新绑定事件。但是新的克隆要好得多。您可以在复制后重新绑定事件。但新的克隆人要好得多