如何使用ajax循环优雅地降级

时间:2012-06-30 20:32:17

标签: jquery graceful-degradation

我有一个主循环,当我点击某些图标时,我会用其他循环替换它。每个循环实际上都有它自己的页面,但对于使用javascript的用户,我只是允许它们在主页内容区域中切换循环。我阅读了一个关于如何做的教程,它使用#作为链接的href,不允许我链接到实际页面,只是让javascript忽略该链接并改为执行ajax。所以我的问题是我如何在下方设置这个过程,以便它优雅地降级。

我有一个名为mysite.com/my-favorites的页面。

这就是我在主页上用ajax调用该页面内容的方式。

<a id="fav" class="trigger-loop" href="#"><div id="favorite-icon"></div></a>

jQuery(document).ready(function($){
 $('#fav.trigger-loop').click(function(){
    $('.trigger').removeClass('active');
    $('.trigger-loop').removeClass('active');
    $('#fav.trigger-loop').addClass('active');
    $('#boxes').empty();
    $.post(
        WPaAjax.ajaxurl,
        {
            action : 'loop_fav',
        },
        function( response ) {
            $('#boxes').append( response ).masonry( 'reload' );
            $('.panel').hide("slow");
        }
    );
 });

});

add_action('wp_ajax_loop_fav', 'loop_fav');
function loop_fav(){
 wpfp_shortcode_func();

 exit;
}    

1 个答案:

答案 0 :(得分:1)

如果我的问题是对的。

添加网址而不是#

<a id="fav" class="trigger-loop" href="mysite.com/my-favorites"><div id="favorite-icon"></div></a>

并在click函数return false;中,因此您的网页不会跳转到指定的网址并改为执行ajax。

 $('#fav.trigger-loop').click(function(){
     ... your code...
     ... your code....
     return false; 

 })