我有一個直播點擊事件的頭部有一個箭頭翻開上/下打開&關閉它的內容。奇怪的數據屬性布爾問題
最奇怪的事情發生在!
後面跟着一個變量 - 這應該是從真實 - >錯誤,反之亦然。基本上它根本不工作,它翻轉爲假,並留在那裏...檢查小提琴,看看我的意思。
爲了簡潔起見,我刪除了很多代碼。
$(document).on('click', '.regimenHeader', function() {
var _state = $(this).attr('data-state');
if (_state === 'true') {
// do stuff
}
else {
// do stuff
}
// This is where the issue is happening, it isn't flipping the Boolean value
// !"true" = false, !true = false, it works with strings or booleans
$(this).attr('data-state', !_state);
});
我能得到它的工作完全沒有問題,如果我做了以下內容:
if (_state === 'true') {
// Manually flip the data-state boolean
$(this).attr('data-state', false);
}
有我丟失的東西,爲什麼這不工作應該的方式? ?只是想知道爲什麼它這樣做!
下一次我會堅持'。數據()'哈哈。我只是希望它在[data-state]中可見,所以我可以搜索它們,而不是遍歷所有頭文件,然後查看它們是否具有'.data('state')=== true等。雖然欣賞幫助! – 2012-08-07 20:41:25
很高興我幫助過,如果你在元素中有一些信息,'.data()'這可能是你正在尋找的東西:)。以防萬一你想看到一些性能測試:http://jsperf.com/jquery-data-vs-attr/22 – NicoSantangelo 2012-08-07 20:45:15