我在链接上绑定(bind) jquery 实时事件时遇到了问题。当链接被添加到页面时,它工作正常,但是当另一个链接被添加到无序列表时,它需要两次点击才能在任一链接上触发点击事件。有什么想法吗?
$("div#website-messages ul li a").live("click", function() {
var link = $(this);
changeTab(link.attr("href"));
$(link.attr("title")).focus();
return false;
});
编辑:好的,我已经缩小了问题范围。如果我取出 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");
}
已解决 我在文本输入上有一个模糊事件,这些事件被聚焦到验证它们。如果我单击其中一个错误并聚焦到第一个文本框,然后单击第二个错误,它将聚焦到第二个文本框但会触发模糊事件而不是聚焦。非常感谢大家的帮助和建议,这让我一整天都快疯了。
最佳答案
EDIT: OK I've narrowed down the problem. If I take out return false, the event fires every time. The problem is then the page jumps to the top. Any ideas to stop that?
尝试
event.preventDefault();
关于javascript - HTML Link 和 Jquery Live Only Works on First Try with a click,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2553543/