2012-08-29 32 views
0

好的,我有一個<a標籤,它調用切換功能來刪除<td標籤。在這種a標籤我有&lt;&lt; ... < <jQuery在切換期間更改'a'標籤的attritube

在功能我想執行切換時改變<<>>。它不工作。我究竟做錯了什麼?

HTML:

<td class="filter_td" id="filter_td"> 
    <td class="show_hide"> 
      <a href="javascript:toggleFilters();" id="show_hide" alt="Hide Filters" title="Hide Filters">&lt;&lt;</a> 
     </td> 

的jQuery:

function toggleFilters() 
{ 
    var td = $("#filter_td"); 
    td.toggle('slow'); 
    if (td.css("display") == "none") 
    { 
     $("#show_hide").html("&gt;&gt;").attr('title', 'Show Filters'); 
    } 
    else 
    { 
     $("#show_hide").html("&lt;&lt;").attr('title', 'Hide Filters'); 
    } 
} 
+0

http://stackoverflow.com/questions/901909/change-html-text-from-link-with-jquery – Endy

+0

不workng ....'如果(td.css( 「display」)==「none」)'正在碰到else語句 –

回答

2

把你的代碼改變文成回調 「切換」。這樣,您就知道動畫已完成,並且元素的可見狀態已完成。事情是這樣的:

var td = $("#filter_td"); 
td.toggle('slow', function() { 
    if (td.not(":visible")) 
    { 
     $("#show_hide").html("&gt;&gt;").attr('title', 'Show Filters'); 
    } 
    else 
    { 
     $("#show_hide").html("&lt;&lt;").attr('title', 'Hide Filters'); 
    } 
}); 

而且,我改變了支票,它被隱藏到jQuery的「不是()」。這是一種更普遍的方式,可以告訴頁面元素是否實際可見,而不是簡單地查看其樣式(可能未定義)。

+0

我在哪裏放置結尾')'作爲切換函數? –

+0

糟糕對不起,我忘了重新添加,當我添加回調部分。它現在在那裏。 – Ian

+0

沒問題...我知道了.... jquery的語法也讓我起來.... –

1
$("#show_hide").on('click', function() { 
    var td = $("#filter_td"), 
     state = td.is(':visible'); 
    td.toggle('slow'); 
    $("#show_hide").html(state?"&gt;&gt;":"&lt;&lt;") 
        .prop('title', (state?'Hide':'Show')+' Filters'); 
}); 

FIDDLE

+0

嘿,這是很酷的人....即將嘗試... –