我有一个基本上使整个表行可点击的jQuery函数,但复制链接并复制行中每个子单元格中的链接。在我的项目中,一些链接可能包含javascript事件onclick,所以我需要我的函数来复制这些事件,但我在这样做时遇到了麻烦。复制onclick事件
这是我当前的功能:
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);
}
}
});
};
我已经尝试不同的方法来复制事件,但似乎无法得到它的工作:
1)[0] .events总是未定义:
if (from.size() && from[0].events && link.size()) {
var events = from[0].events;
link.each(function() {
for (var type in events) {
for (var handler in events[type]) {
jQuery.event.add(this, type, events[type][handler], events[type][handler].data);
}
}
});
}
2)这一次似乎要执行好,但点击链接复制不会做任何事情
link.attr('onclick',from.attr('onclick'));
这有什么关系? ;) – mway 2010-10-21 16:48:06
是的,事实并非如此。写作时我一定没有完全意识到... – naugtur 2010-10-22 09:42:19