我遇到了jquery实时事件绑定的问题。当链接添加到页面时,它工作正常,但是当另一个链接添加到无序列表中时,它需要两次点击才能在任一链接上触发点击事件。有任何想法吗?HTML链接和Jquery Live仅在第一次尝试时尝试点击一下
$("div#website-messages ul li a").live("click", function() {
var link = $(this);
changeTab(link.attr("href"));
$(link.attr("title")).focus();
return false;
});
编辑:好的我已经缩小了这个问题。如果我退回错误,则事件每次都会触发。问题是,页面跳转到顶部。任何想法来阻止呢?创建链接
代码:
Validation.validate = function() {
var html = "";
for (var i = 0; i < errors.length; i++) {
html += "<li><a href='" + errors[i].tabid + "' title='" + errors[i].elementID + "'>" + errors[i].message + "</a></li>";
}
$("div#website-messages ul").html(html);
}
ChangeTab功能
function changeTab(changeTo) {
changeTo = changeTo.substr(changeTo.indexOf("#"), changeTo.length);
$("#tabs div").hide();
$(changeTo).show();
$("ul.navigation li a").removeClass("selected");
$("ul.navigation li a[href='" + changeTo + "']").addClass("selected");
}
解决 我对到验证他们正在集中在文本输入的模糊事件。如果我点击其中的一个错误并将注意力集中到第一个文本框,然后单击第二个错误,它会将焦点放在第二个文本框上,但是会触发模糊事件而不是焦点。非常感谢你的帮助和建议,这让我一整天都很疯狂。
代码是否运行两次,每次链接一次?尝试在函数中添加警报... – 2010-03-31 14:11:27
是的,代码将为每个链接运行一次。之后,它需要双击才能运行。 – Jon 2010-03-31 14:16:58
@Jon我认为James的建议是,通过单击一个链接一次,您在那里的代码实际上可能会执行两次。结果进入一个奇怪的状态,行为正在得到意想不到的结果,因为每次点击都会多次执行代码。你能在jsbin.com上提供你的问题的例子吗? – Matt 2010-03-31 14:42:07