Jquery Live с плагином Facebox - PullRequest
       18

Jquery Live с плагином Facebox

2 голосов
/ 13 октября 2009

Я пытаюсь использовать плагин jquery facebox с живыми событиями (официальная реализация, а не плагин).

Моя главная страница загружается на странице через ajax. Эта удаленная страница также имеет ссылки на другие удаленные страницы, которые я хотел бы отобразить во всплывающем диалоге. Я использовал плагин для Facebox для этого.

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

<script type="text/javascript">
            jQuery(document).ready(function($) {

                $('a[rel*=facebox]').live("click", function() {
                    $('a[rel*=facebox]').facebox()
                });
            });
          </script> 

это правильный способ использовать живые события?

Моя машина для разработки, к сожалению, состоит только из IE6 [:(], поэтому я не могу использовать firebug для отладки кода.

Ответы [ 3 ]

6 голосов
/ 19 января 2011

дополняет ответ Коби фабричным комментарием:

$('a[rel*=facebox]').live("mousedown", function() { 
    $(this).unbind('click'); //everytime you click unbind the past event handled.
    $(this).facebox();
});

Итак, вы можете запретить Facebox умножать события.

кредитов Коби.

4 голосов
/ 13 октября 2009

Я полагаю, что событие click слишком поздно для запуска facebox.
Это может работать с mousedown (на моем тесте все было в порядке, но не совсем так)

$('a[rel*=facebox]').live("mousedown", function() { 
    $(this).facebox(); // this should do, you don't need all links
});

Я бы тоже порекомендовал это. Я предлагаю активировать лицевую панель после того, как вы закончите вызов AJAX:

// sample code - you might use an other AJAX call
$('#dynamicDiv').load('...', {}, function(){
    $('#dynamicDiv a[rel*=facebox]').facebox();
});
1 голос
/ 11 ноября 2009

Большое спасибо, у меня были проблемы, потому что после загрузки моего динамического контента rel = facebox, кажется, вообще не работает

Я только что активирован

jQuery (документ) .ready (функция ($) { $ ( 'А [отн = facebox]'). Facebox () })

после ajax.response и вуаля я вижу всплывающее окно с изображением лица вместо страницы по ссылке.

Большое спасибо, Коби.

...