2012-02-14 79 views
1

這似乎對你們來說很容易,但我在jquery和ajax中有點新鮮。我到處尋找,幾個小時都無法解決問題。我的問題如下:jquery切換替代,無法理解這裏發生了什麼

我有類名稱的HTML鏈接跟隨

<a href="#" class="follow"> {if $is_following == 0} follow {else} following {/if} </a> 

的if-else語句僅僅是一個智者模板引擎的使用。這很簡單。如果用戶關注其他用戶,則顯示'follow'值,否則顯示'following'值。

我的jquery如下;

var $values; 
$('.follow').mouseover(
    function() 
    { 
     $values = $(this).html(); 
     if($values == 'following') 
     { 
      $(this).html('unfollow'); 
     } 
    } 
); 

$('.follow').mouseout(

    function() 
    { 
     $(this).html($values); 
    } 
); 

$('.follow').toggle(

    function(){ 
     $(this).html('following'); 
     $values = "following"; 
    }, 
    function(){ 
     $(this).html('follow'); 
     $values = "follow";  
    } 
); 

//follow ajax call  
$('.follow').click(function(){ 

    var $op = $(this).html(); 
    var $other_profile_id = $('#other_profile_id').text(); 

    if($op == 'follow') 
    {     
     $.ajax({ 
      type : 'POST', 
      url : 'ajax_service.php', 
      dataType : 'json', 
      data: { 
       op : $op, 
       other_profile_id : $other_profile_id 
      },   
      success : function(data){    

      }, 
      error:function (error){ 
       console.error(error.responseText); 
      }         
     });     
    } 
    else if($op == 'unfollow') 
    {    
     $.ajax({ 
      type : 'POST', 
      url : 'ajax_service.php', 
      dataType : 'json', 
      data: { 
       op : $op, 
       other_profile_id : $('#other_profile_id').text()    
      }, 
      success : function(data){ 
      }, 
      error:function (error){ 
       console.error(error.responseText); 
      } 
     }); 
    } 
}); 

編輯:根據答案,我需要解釋的功能;

  • 如果沒有遵循用戶,鏈接將顯示'follow'值。
  • 如果用戶已經遵循,則會顯示'following'值,當鼠標懸停在鏈接上時,它應該觸發mouseover事件。
  • 如果鼠標懸停在鏈接上並且該值爲'跟隨',則鏈接值應爲'unfollow'。
  • 如果鼠標不在鏈接上,它應該再次顯示值'follow'。
  • 如果用戶未被遵守,它會在鏈接上顯示'follow'值。

我不想使用切換事件。因爲切換隻抓住第一次和第二次點擊。我需要一個if語句來控制鏈接值是跟隨還是跟隨。

此外,如果用戶關注,它會顯示以下值,但mouseover事件不起作用。你能解釋我爲什麼嗎?我無法理解這裏發生了什麼。

任何建議或幫助將不勝感激。

P.S:如果我刪除切換事件並控制ajax調用中的鏈接值,它根本不起作用。

此外,我想分配不同的鏈接ID鏈接和處理他們分開。但是,我認爲這是錯誤的方式。

回答

1

在你有形式的聲明幾個地方:

$(this).html(); 

OR

$(this).html('sometext'); 

如果更改了這些到:

$(this).text(); 

$(this).text('newtext'); 

這並不能解決您的問題?

注意:'newtext'將是您希望在該標籤內保留的任何文本。編輯注2:我知道這並不是你所有的問題,但也許你可以更清楚地解釋你想要的功能。

看到這個小提琴來確定,如果這是你在找什麼:http://jsfiddle.net/MarkSchultheiss/Swp7x/

注意:它使用JSONP和跨域,而只使用返回的值回顯,但你可以得到Ajax的部分工作需要爲你。我投入一個領域,以直觀的方式展示當前狀態的價值,或許可以幫助你理解運作方式。

+0

當我更改$(this).html();它不改變任何東西。到$(this).text(); – aacanakin 2012-02-14 13:54:40

+0

我添加了功能來提問。 – aacanakin 2012-02-14 13:58:58

+0

這是我想要的,但我有一個問題。是發佈數據也轉換爲json或不? – aacanakin 2012-02-15 09:16:21