0

jQuery の に問題がありload()ます。これは私のコードです:

    $('nav#pagination ul li a').live('click', function() {

        var url = $(this).attr('href');

        $(this).parent('li').parent('ul').parent('nav').fadeOut('fast',function() {
            $(this).load(url + ' nav#pagination > *', function() {
                $(this).fadeIn();
            })
        })

        return false;
    })

HTML:

<div class="block" id="onShelf">
        <header class="prefix_1">
            <h2>Na półce</h2>
        </header>
        <div class="inner prefix_1 suffix_1">
            ## normal text ##
            <div class="clear"></div>
            <nav id="pagination" class="clearfix">
                <ul>
                <li><b>1</b></li>
                <li><a href="/page/8"5px;">2</a></li>
                <li><a href="/page/16"5px;">3</a></li>
                <li><a href="/page/24"5px;">4</a></li>
                <li><a href="/page/32"5px;">5</a></li>
                <li><a href="/page/40"5px;">6</a></li>
                <li><a href="/page/8"5px;">→&lt;/a></li>
                </ul>
            </nav>
        </div>
    </div>

これらのリンクの 1 つをクリックすると機能しますが、1 回だけです。機能しなくなり、読み込まれたコンテンツにスクリプトが読み込まれません。ロード後、各関数を内部で再宣言する必要があります。このエレガントではない解決策を省略するにはどうすればよいでしょうか?

liveclickdelegateおよびを試しbindました。

4

1 に答える 1

0

次のようなものを使用してみてください

$(body).on('click', 'nav#pagination ul li a', function () {
    your code here
});

本体の代わりに、リフレッシュできない要素を使用できます

于 2012-12-24T07:12:44.860 に答える