0

私のサイトには、次のコードがページをリロードするのを防ぐ必要がある JS があります (AJAX を使用してページの一部を更新するため) が、IE では常にページがリロードされます。他のすべてのブラウザは問題ありません。

JSは、別のスレッドで与えられています-

$('#attachment-body').delegate("a", "click", function(e){
    e.preventDefault();
});

まだページをリロードしているリンク (#attachment-bodyコンテナ内にあります) -

<div id="image-navigation">
    <div id="nav-previous" class="nav-previous attachment-nav-previous float-left">
        <p><a id="previous-link" href="<?php echo get_permalink($attachments[$previous_position]->ID); ?>" title="<?php echo esc_attr(get_the_title($attachments[$previous_position]->post_title)); ?>" onclick="set_centre_image(<?php echo $attachments[$previous_position]->ID; ?>, <?php echo $previous_position; ?>)">&laquo; Previous Image</a></p>
    </div>
    <div id="nav-next" class="nav-next attachment-nav-next float-right">
        <p><a id="next-link" href="<?php echo get_permalink($attachments[$next_position]->ID); ?>" title="<?php echo esc_attr(get_the_title($attachments[$next_position]->post_title)); ?>" onclick="set_centre_image(<?php echo $attachments[$next_position]->ID; ?>, <?php echo $next_position; ?>)">Next Image &raquo;</a></p>
    </div>
</div>

レンダリングすると、これは上記によって生成されたコードのブロックです -

<div id="image-navigation">
    <div id="nav-previous" class="nav-previous attachment-nav-previous float-left">
        <p><a id="previous-link" href="http://mydomain.com/firm-news/summer-drinks-at-the-castle/summer-drinks-2011-6/" title="" onclick="set_centre_image(5144, 5)">&laquo; Previous Image</a></p>
    </div>
    <div id="nav-next" class="nav-next attachment-nav-next float-right">
        <p><a id="next-link" href="http://mydomain.com/firm-news/summer-drinks-at-the-castle/summer-drinks-2011-8/" title="" onclick="set_centre_image(5146, 7)">Next Image &raquo;</a></p>
    </div>
</div>

preventDefault()サイトの他の領域で使用するのと同じように IE で動作するため、コードの何かが正しくないとしか思えません。

ありがとう。

4

1 に答える 1

0

私はこれで解決したと思います...

私のギャラリーの次/前のリンクがクリックされると、JS 関数が起動され (を使用して)、 agianstonClick()を実行した div が最初にクリアされました。preventDefault()その代わりに、私はそれを隠し、今では機能しています。

私は専門家ではありませんが、IE は、インラインで指定された関数を起動した後に.delegate(),.live()およびclick()メソッドをテストしているように見えます (つまり、#attachment-bodyチェックしていた時点では存在しませんでした)。その周り。

于 2011-10-31T16:40:42.733 に答える