如何阻止jQuery函数相互干扰?

时间:2009-05-23 12:13:49

标签: jquery ajax

我有两个独立的(但相似的)jQuery代码。它们都有效,但相互干扰。如何正确地将这些函数格式化为唯一并阻止它们相互影响。

代码块1:

    $('#share-email').click(function(e) {
        e.preventDefault();
        $("#socialbox-" + $(this).attr('rel')).load('<?php echo site_url();?>club/sendtofriend/' + $(this).attr('rel'));
    return false;
    });
    $().ajaxSend(function(r,s){
        $(".social-share-container").fadeOut('fast');  
    });
    $().ajaxStop(function(r,s){
        $(".social-share-container").fadeIn('fast');
    });

代码块2:

    $('.djlink').click(function(e) {
        e.preventDefault();
        $("#djinfo").load($(this).attr('href'), Cufon.refresh);
    return false;
    });
    $().ajaxSend(function(r,s){
        $("#djinfo").fadeOut('fast');  
    });
    $().ajaxStop(function(r,s){
        $("#djinfo").fadeIn('fast');
    });

看似重叠的代码部分是ajax发送/停止部分。

1 个答案:

答案 0 :(得分:3)

如果我正确地猜测你要做什么,这样的事情应该解决它:

    $('#share-email').click(function(e) {
        e.preventDefault();
        $("#socialbox-" + $(this).attr('rel')).fadeOut('fast').load('<?php echo site_url();?>club/sendtofriend/' + $(this).attr('rel'), function() {
            $(this).fadeIn('fast')
        });
        return false;
    });


    $('.djlink').click(function(e) {
        e.preventDefault();
        $("#djinfo").fadeOut('fast').load($(this).attr('href'), function() {
            Cufon.refresh();
            $(this).fadeIn('fast');
        });
        return false;
    });