2011-03-24 85 views
1

我正在寫一個快速腳本來顯示和隱藏ul及其內容 - 基本上是一個下拉菜單。我在 問題是在下面的代碼,第2行:在FF爲什麼IE8在JS字符串concat中添加空格?

$('#mainMenu ul li').mouseenter(function() { 
    var dropTab = 'ul.' + $(this).attr("id") + 'Dropdown'; 
    alert(dropTab); 
    $(dropTab).slideToggle(); 
}); 

工作正常,但在IE8的dropTab串具有空白之間的第二和第三元件,即它輸出:

ul.someId     Dropdown 

當我在尋找:

ul.someIdDropdown 

就像我說的,在FF工作正常,但很好奇,當空白是從,來作爲它執行停止功能...

任何建議表示歡迎 - 樂意考慮一種替代方法

+0

我同意soolhsinger,無論如何,你可以請doublecheck你的'id'不包含空格? – ArtoAle 2011-03-24 03:37:02

+0

這可能是一個微型優化,但你應該能夠使用'this.id'而不是通過'jQuery.fn.attr'訪問id。有關更多詳細信息,請參閱http://whattheheadsaid.com/2010/10/utilizing-the-awesome-power-of-jquery-to-access-properties-of-an-element。 – 2011-03-24 05:08:51

回答

1

的空白顯然是從$(this).attr("id")方法內部發出。 IE返回時肯定不是trim這個id。你可能想嘗試改變這一行:

var dropTab = 'ul.' + $.trim($(this).attr("id")) + 'Dropdown'; 
+0

謝謝 - 意識到這個問題源於格式錯誤的xslt - 後來有一些xsl:text標記,這是排序的。但是,slideToggle仍然不會合作。咩。 – Nathan 2011-03-24 03:52:32

相關問題