我有一個問題,我似乎無法識別,代碼在Firefox和Chrome中運行良好,但在IE中失敗。jQuery代碼在Firefox中工作,但在IE中失敗
,我有以下元素序列:
<tbody id="tbod161-1__" isloaded="true" style="display: none;"></tbody>
<tbody id="tbod162-2__" isloaded="true"></tbody>
我想創建一個jQuery的cookie,它存儲的元素是否可見或不可見。
function RememberClickedState() {
$('.ms-listviewtable tbody[id^="tbod"]').each(function(){
tid = $(this).attr('id');
var tvisible = ($(this).attr('style') == undefined || $(this).attr('style').indexOf('display: none;') == -1);
var strVisible;
if(tvisible == true)
{
strVisible = "true";
}
if(tvisible == false)
{
strVisible = "false";
}
items += tid+':'+strVisible+';'
})
$.cookie("itemListState", items);
}
當我檢索與值:
string = $.cookie("itemListState");
alert(string);
...所有的ID是在IE中設置爲「真」,這意味着該值被錯誤地寫在cookie中。但是,在Ff/Chrome中某些ID正確設置爲false的情況下運行時,此代碼可以很好地工作。
我錯過了什麼? 謝謝,
使用jQuery你可以說'$(本)。是(':visible')'...你也不需要'if/else'來將布爾值轉換爲字符串 - 直接在字符串連接表達式中直接使用它。 – Pointy 2012-08-12 16:21:05
嘗試檢查$(this).css('display')=='none',而不是讀取「style」屬性的值。 – sgress454 2012-08-12 16:32:06