0

私は次のjqueryコードを持っています:

    $('div#headBannerSearchAgedBetweenSlider').slider({
            range: true,
            min: 18,
            max: 99,
            values: [18, 65],
            change: function(event, ui) {
                    $('span#headerBannerAgedMin').html(ui.values[0]);
                    $('span#headerBannerAgedMax').html(ui.values[1]);
            },
            slide: function(event, ui) {
                if (ui.values[0] == ui.values[1]) {return false;}
            }
    });

キャッチは、要素'div#headBannerSearchAgedBetweenSlider'はjsスクリプトがロードされたときに使用できないため、要素が使用可能になったら、.live()や.on()などを使用してスライドイベントをアタッチする必要があります。

スライドが表示されたら、要素'div#headBannerSearchAgedBetweenSlider'にスライドをバインドするにはどうすればよいですか?次のコードをラップしようとしました(要素として$(this)を使用していますが、クリックイベントは使用していません。要素が存在したらバインドする必要があります。

     $(document).on('click','div#headBannerSearchAgedBetweenSlider', function() {
     });

どうすればよいですか?

ありがとうございました


私は運がなくて次の.ready()を試しました-これに明らかに何か問題がありますか?

$('div#headBannerSearchAgedBetweenSlider').ready(function() {
    $('div#headBannerSearchAgedBetweenSlider').slider({
            range: true,
            min: 18,
            max: 99,
            values: [18, 65],
            change: function(event, ui) {
                    $('span#headerBannerAgedMin').html(ui.values[0]);
                    $('span#headerBannerAgedMax').html(ui.values[1]);
            },
            slide: function(event, ui) {
                if (ui.values[0] == ui.values[1]) {return false;}
            }
    });
});
4

1 に答える 1

1

#headBannerSearchAgedBetweenSlider要素がロードされた/DOMに存在するようになったら、プラグインを呼び出す必要があります。.load()(非同期)を使用してコンテンツを動的にロードしているように見えるので、次のように機能するはずです(ここではdiv、問題の要素を要素にロードすると想定しています#wrapper)。

$('#wrapper').load('/what/ever.php', function(){ //this function will be executed once your content is successfully loaded
    $('div#headBannerSearchAgedBetweenSlider').slider({/*..options go here..*/});
});

AJAX呼び出しのコールバック関数については、ドキュメントを参照してください。

于 2012-10-07T09:15:24.247 に答える