preventDefault无法使用wordpress noConflict

时间:2013-05-20 19:48:32

标签: jquery ajax wordpress

对于我的生活,在我的wordpress index.php底部调用这些函数后,我无法阻止默认页面重新加载。

据我所知,我已经将脚本转换为与Wordpress自己的noConflict模式兼容,但由于某种原因,这不会流向以下调用。

我应该在标题中调用这些脚本,以便在wordpress加载每个页面中的所有内容之前将它们带入吗?或者我的语法有问题吗?

(没有记录控制台错误)

<script type="text/javascript">
jQuery(".articleTitle a").click(function($){
    $.ajaxSetup({cache:false});
    var post_id = $(this).attr("href");

    $(".articleTitle a").preventDefault();


    $("#fold-above").css('display','none');
    $("#fold-above").fadeIn(300);
    $("#fold-above").load("<?php echo get_site_url(); ?>/ajaxpost/",{id:post_id});

    return false;
});
</script>


<!-- load files into ajax box and scroll it down: -->
<script type="text/javascript">
jQuery(document).ready(function($){
$(document).on('click', '.closeUp', function(){
    var video = document.getElementById("postvideo");

    video.pause();
    $("#fold-above").slideToggle();
    $("#fold-above").empty();

});
 });
</script>

2 个答案:

答案 0 :(得分:1)

您无法像这样致电preventDefault,只需尝试按照代码

jQuery(".articleTitle a").click(function ($) {
    event.preventDefault();
    $.ajaxSetup({cache:false});
    var post_id = $(this).attr("href"); 
    $("#fold-above").css('display', 'none');
    $("#fold-above").fadeIn(300);
    $("#fold-above").load("<?php echo get_site_url(); ?>/ajaxpost/", {
        id: post_id
    });

    return false;
});

http://jsfiddle.net/b2cK2/

答案 1 :(得分:0)

事件被传递给匿名函数。然后在preventDefault上调用event方法。

jQuery(".articleTitle a").click(function(event){
    $.ajaxSetup({cache:false});
    var post_id = $(this).attr("href");

    event.preventDefault();


    $("#fold-above").css('display','none');
    $("#fold-above").fadeIn(300);
    $("#fold-above").load("<?php echo get_site_url(); ?>/ajaxpost/",{id:post_id});

    return false;
});

Documentation

相关问题