2011-09-28 110 views
1

我有兩個功能:問題與jQuery和Ajax

$(function() { 
    $(".deactivated").click(function() {   
      var Container = $(this).parent();    
     var id = $(this).attr("id");    
     var string = 'id='+ id ;  
     $.ajax({ 
      url: "<?php echo site_url('social/activate') ?>", 
      type: "POST", 
      data: string, 
      cache: false, 
       success: function(){ 
        Container.fadeOut(1000, function(){ 
        $(this).load("<?php echo site_url('social/social_icon') ?>", {id: id}, function(){ 
         $(this).hide().fadeIn(700); 
         $(this).click(); 
        }) 
       }); 
      } 
     }); 
     return false; 
    }); 
}); 

$(function() { 
    $(".activated").click(function() {   
      var Container = $(this).parent();    
     var id = $(this).attr("id");    
     var string = 'id='+ id ;  
     $.ajax({ 
      url: "<?php echo site_url('social/deactivate') ?>", 
      type: "POST", 
      data: string, 
      cache: false, 
       success: function(){ 
        Container.fadeOut(1000, function(){ 
        $(this).load("<?php echo site_url('social/social_icon') ?>", {id: id}, function(){ 
         $(this).hide().fadeIn(700); 
        }) 
       }); 
      } 
     }); 
     return false; 
    }); 
}); 

之一是激活鏈接,另一種是將其停用。功能工作正常,但是當鏈接被激活或停用時,不能再次單擊以更改它(頁面需要刷新才能使功能再次運行)。我需要做些什麼才能使它工作?

+0

你改變類的鏈接?停用=>激活,激活=>停用 –

回答

3

變化:

$(".activated").click(function() { 
$(".deactivated").click(function() { 

要:

$(".activated").live('click',function() { 
$(".deactivated").live('click',function() { 
1

您似乎正在替換容器及其中的元素,因此已將綁定到它們的元素刪除。

您可以通過更改您的事件處理程序使用修復此live

$(".deactivated").live('click', function() { 

$(".activated").live('click', function() { 
0

看起來像您正在替換您單擊的鏈接失去事件綁定。

更改。點擊()使用.live(「點擊」 ..

$(".deactivated").live('click', function() {