5

ファンシーボックスのリンクをバインドして、新しいリンクが作成されたときに引き続き機能するようにしようとしています。私はここで他のいくつかの質問を見ましたが、実際には答えられていません。これが私がやろうとしていることです。

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

これは正常に機能しますが、ページまたはリンクがajaxによってリロードされると機能しません。live()を使ってみましたが、うまくいきませんでした。fancyboxでライブをどのように再バインドまたは実装しますか?これを行う方法はありますか?ありがとう

4

3 に答える 3

11

個人的にはjQueryのライブ機能を使っています。

jQuery("a#[id^='domore_']").live('click', function(){
    jQuery.fancybox({
        'autoDimensions': false,
        '幅' : '自動',
        '高さ' : '自動',
        'href' : $(this).attr('href')
    });
    false を返します。
});

注:あなたの問題とはあまり関係ありませんが、IE の select で change イベントを使用する場合、jQuery 1.4.2 には少し問題があることに注意してください。ただし、1.4.1 は今のところ問題ないようです。(Googleで「IEのJquery 1.4.2で壊れた「変更」イベントのlive()メソッド(1.4.1で動作)」を検索してください。新しいのでリンクを追加できません)

それが役に立てば幸い

于 2010-05-11T16:20:14.967 に答える
2

これを使用できます。それは私のために働いた

$('.address').live('click',
function(){                 
    $(this).fancybox({
        'width'         : '40%',
        'height'        : '70%',
        'autoScale'     : false,
        'transitionIn'  : 'none',
        'transitionOut' : 'none',
        'type'          : 'iframe',
        'onClosed'      : function() {
            $("#basket").load("/order/basket");   
        }
    }).trigger("click"); 
    return false;
});
于 2010-09-17T10:59:50.313 に答える
1

おそらく、ajax の成功/コールバック メソッドに faceybox 関数呼び出しを含める必要があります。

$.ajax({
  url: 'test.html',
  success: function(data) {
    $('.result')
     .html(data)
     .find("a#[id^='domore_']").fancybox({
       'autoDimensions' : false,
       'width'          : 'auto',
       'height'         : 'auto'
     });
  }
});
于 2010-05-05T16:55:14.967 に答える