2
不能存取權限動態生成的元素: 這是我的JSON請求功能:不能訪問動態生成的元素
$.getJSON('/getJSON.php?selectorcat='+var1, function(jsonData){
var LI_list_html = '';
var sum = 0;
if(jsonData[0])
{
$.each(jsonData, function(i,value)
{
var catname = jsonData[i].name;
var id = jsonData[i].id;
var DIV_html = catname;
LI_list_html = LI_list_html+'<li class="selectorsub" data-catselectsub="'+id+'" id="SelectorSubcat_'+id+'">'+DIV_html+'</li>';
});
}
else
{
LI_list_html = 'No subcats there..';
}
所以,當我得到生成的HTML這樣的:
<ul>
<li class="selectorsub" data-catselectsub="169" id="SelectorSubcat_169">CAT1</li>
<li class="selectorsub" data-catselectsub="170" id="SelectorSubcat_170">CAT2</li>
<li class="selectorsub" data-catselectsub="171" id="SelectorSubcat_171">CAT3</li>
<li class="selectorsub" data-catselectsub="172" id="SelectorSubcat_172">CAT4</li>
</ul>
我無法存取權限鋰元素trought這樣的:
$("[id^=SelectorSubcat_]").click(function() {
alert($(this).data('catselectsub'));
});
我想的Elemen是生成沒有準備好的DOM,這是爲什麼無法訪問它們。
對於這個原因,你是100%真實的,這就是爲什麼我們有[委託事件](http://learn.jquery.com/events/event-delegation/)。順便說一下,你的jQuery選擇器非常複雜,在這種情況下,你最好使用我所看到的類。 –
爲什麼不依賴'.selectorsub'類而不是'[id^=]'?它不僅更簡潔,而且性能更好。 – haim770