Событие click вызывается несколько раз. Почему?
Здравсвуйте!
Даже не знаю как написать, чтобы было понятно. Наверное лучше показать на примере. Заходим сюда http://rusbody.com/photonew/1.html и жмём на ссылку "Открыть модальное окно" Во сплывшем окне, полистайте пару раз фото (вперед, назад) и закройте модальное окно. Потом если вы ещё раз нажмёте на ссылку "Открыть модальное окно" то она будет загружать два раза вподряд - В этом и есть косяк. Вот код
$(document).ready(function(){
// ставим ссылки
photossilki();
function photocontent(link,pid) {
$.ajax({
type: 'POST',
url: link,
data: {pid: "pid"},
success: function(data){
$(".rcontent").html(data + "<div class='photo-load'></div>");
window.location.hash = "photo_" + pid;
$(".body2").css("height", $(document).height()).show();
$(".photo-load").hide();
photossilki();
//alert("ok");
},
error: function(xhr, textStatus, error){
$(".rcontent").html(xhr.statusText);
}
});
};
function photossilki() {
$("a.pr").click(function(){
$(".body").css("overflow", "hidden");
var pid = $(this).attr("id");
var link = $(this).attr("href");
$(".body2").show();
$(".photo-load").show();
//$(".rcontent").html("Загрузка...");
photocontent(link,pid);
return false;
});
}
|
просто в порядке предположения, может и дурацкого: а не происходит ли $(document).ready() при загрузке аяксового контента?
|
А! невнимательность же, извините.
В функции photocontent вызов функции photossilki, в которой обработчик на клик навешивается ещё раз. http://api.jquery.com/one/ должно решить проблему. |
Цитата:
Спасибо за быстрый ответ, но ONE проблему не решило :( |
Цитата:
$("a.pr").live("click",function(){…})
|
тоже не помогло, первый раз работает, а на новые ссылки не срабатывает
|
а что-то я не вижу новых ссылок с классом pr.
Что вообще должно происходить? Какой результат ожидается? |
Всё работает, просто когда пытаешься открыть второй раз модальное окно, то оно загружается несколько раз...
|
rusbody, Танцы c Бубном :
function photossilki() {
$("a.pr").one('click', function(){
|
Deff пробовал, всё равно несколько раз загружется
|
| Часовой пояс GMT +3, время: 22:44. |