Используйте jQuery Fancybox (диалоговое окно типа лайтбокса) с динамично загруженными ссылками

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

jQuery("a#[id^='domore_']").fancybox({
'autoDimensions' : false,
'width'           : 'auto',
'height'          : 'auto'
});

Это хорошо работает, но когда страница или ссылки перезагружаются ajax, это не работает. Я пытался использовать живой (), но я не мог заставить это работать. Как Вы снова переплетаете или реализуете живой на fancybox? Какой-либо способ сделать это?Спасибо

5
задан Panama Jack 5 May 2010 в 16:34
поделиться

2 ответа

Я лично использую живую функцию jQuery .

jQuery("a#[id^='domore_']").live('click', function(){
    jQuery.fancybox({
        'autoDimensions'  : false,
        'width'           : 'auto',
        'height'          : 'auto',
        'href'            : $(this).attr('href')
    });
    return false;
});

Примечание: На самом деле не связано с вашей проблемой, но имейте в виду, что jQuery 1.4.2 имеет небольшую проблему при использовании события изменения для выбора в IE, но 1.4.1, похоже, пока подходит. (выполните поиск «метод live () для события 'change', сломанного в JQuery 1.4.2 для IE (работал в 1.4.1)» в Google, я не могу добавить ссылку, так как я новичок)

Надеюсь, это поможет

11
ответ дан 18 December 2019 в 13:12
поделиться

You will probably have to include the faceybox function call in your ajax success/callback method:

$.ajax({
  url: 'test.html',
  success: function(data) {
    $('.result')
     .html(data)
     .find("a#[id^='domore_']").fancybox({
       'autoDimensions' : false,
       'width'          : 'auto',
       'height'         : 'auto'
     });
  }
});
1
ответ дан 18 December 2019 в 13:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: