我有一个包含链接作为表数据的表,我想让表行可点击。为此,我使用以下jQuery。
这的功能就像
代码:
jQuery( function($) {
$('tbody tr[data-href]').addClass('clickable').click( function() {
window.open($(this).attr('data-href'),'mywin','left=20,top=20,width=1240,height=500,toolbar=1,resizable=0');
}).find('a').hover( function() {
$(this).parents('tr').unbind('click');
}, function() {
$(this).parents('tr').click( function() {
window.location = $(this).attr('data-href');
});
});
});
现在的问题是,当我第一次点击表格数据链接时,之后我点击表格行,它没有在新窗口中打开,但当前页面重定向到预期在新窗口中打开的页面。
答案 0 :(得分:1)
你走错了路。
不要乱解解锁和重新绑定click事件,只需处理锚元素的事件,并检查处理函数本身已点击的内容并执行适当的操作。新代码将是:
jQuery( function($) {
$('tbody tr[data-href]').addClass('clickable');
$('tbody').on('click', 'tr[data-href],a', function(evt) {
if (this.nodeName.toLowerCase() === "a") {
document.location = this.href;
}
else {
window.open($(this).attr('data-href'),'mywin','left=20,top=20,width=1240,height=500,toolbar=1,resizable=0');
}
evt.stopPropagation();
return false;
});
});