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 函数(使用onClick()),该函数首先清除了我运行preventDefault()agiant 的 div。取而代之的是,我把它藏起来了,它现在可以工作了。

我不是专家,但它看起来像 IE 测试.delegate(),.live()click()方法在它触发内联指定的函数(意味着#attachment-body它在检查它时不存在),而其他浏览器则以另一种方式做大约。

于 2011-10-31T16:40:42.733 回答