我不知道如果我剛發現一個潛在的jQuery錯誤,但請查看以下情況。動態鏈接屬性時jQuery數據()的潛在錯誤?
如果我動態更改data-ajax-link
屬性,然後嘗試使用$('something').data('ajax-link');
獲取它的值,則在動態更改之前,檢索的值仍舊是舊值。
這裏是例子。這是一個自定義dropDown,它將ul的第一個孩子的點擊選項。該元素的名稱,以及第一胎的數據AJAX鏈接與點擊選項的值更新中... http://jsfiddle.net/RLF3W/1/
$('.select .option').live('click', function (e) {
e.stopPropagation();
$(".select .option:not('.darr')").hide();
selectedOption = $(this).parents("div.select").find(".option:first");
$(this).siblings().show();
selectedOption.text($(this).text()).attr('data-ajax-link', $(this).data('ajax-link'));
});
$('.select .option:not(".darr")').live('click', function() {
$(this).parents("div.select").find(".option:not('.darr')").hide();
});
$(window).click(function() {
$(".select .option:not('.darr')").hide();
});
$('a#tester').live('click', function(e) {
e.preventDefault();
//var sort = $('#sortb .darr').attr('data-ajax-link');
var sort = $('#sort .darr').data('ajax-link');
$('#output').text(sort)
});
在我的例子,你可以看到,選擇不同的選項後,下拉菜單,然後點擊測試鏈接,data-ajax-link的值仍然是原始值,儘管如果元素被檢查,它實際上會改變。如果我使用.attr('data-ajax-link')
獲取更新的值,它可以正常工作。
我在這裏錯了,我做錯了什麼或者這是一個錯誤?