У меня возникла проблема с привязкой живого события 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");
}
РЕШЕНО У меня было событие размытия для текстовых вводов, которые были сфокусированы на них, что подтверждало их. Если бы я щелкнул одну из ошибок и сфокусировался на первом текстовом поле, а затем щелкнул на второй ошибке, он сфокусировался бы на втором текстовом поле, но вызвал бы событие размытия, а не фокус. Всем большое спасибо за вашу помощь и предложения, это сводило меня с ума весь день.
return false
,event.preventDefault
,void(0)
и т. д.). Мне интересно, что вы пытаетесь сделать, когда добавляете.focus()
в ссылку? Я разместил демо здесь о том, как работает/не работает фокус (pastebin.me/973509bd873d9ef90fa19c961e77fb27). И, как было сказано ранее, пример с jsbin был бы гораздо полезнее. Чего вы пытаетесь достичь, меняя вкладки и расположение ссылок? - person Mottie   schedule 31.03.2010