Событие клика работает только при первом клике после загрузки страницы. - PullRequest
0 голосов
/ 13 июля 2011

Я использую этот всплывающий плагин для jquery и получаю странное поведение. Я связался с создателем, но не получил ответа и хотел бы спросить здесь, есть ли какие-либо общие проблемы с моим кодом.

Настройка: Обычные HTML-ссылки, открывающие страницу в новой вкладке (для пользователей с отключенным JS).

js ниже, чтобы поймать ссылку, щелкнуть и анимировать всплывающее окно вместо перехода по ссылке.

Проблема: Он работает при первом нажатии на каждую загрузку страницы, но после этого щелчок следует за ссылкой.

JS

 $("a[class*='popupbox-link']").live("click",function (e) {
        if($("#popupbox").length == 0){
            $('body').append('<div id="popupbox"><a class="bClose">Stäng</a><div id="pContent"></div></div>');
        }
        var url = this.href;
        $("#popupbox").bPopup({contentContainer:'#pContent', loadUrl: url });
        e.stopPropagation();

        return false
    });

Ответы [ 2 ]

0 голосов
/ 13 июля 2011

попробуйте использовать делегат вместо живого

0 голосов
/ 13 июля 2011

Попробуйте предотвратить распространение события

$("a[class*='popupbox-link']").live("click",function (e) {
   e.stopPropagation();
   if($("#popupbox").length == 0){
      $(‘body’).append(‘Stäng‘);
   }
   var url = this.href;
   $("#popupbox").bPopup({contentContainer:'#pContent', loadUrl: url });


   return false;
});
...