このコードが機能しないのはなぜですか?
$("div.class ul li").on("click","a",function(){
alert("A");
});
しかし、これはうまくいきます...
$("body").on("click","div.class ul li a",function(){
alert("A");
});
このコードが機能しないのはなぜですか?
$("div.class ul li").on("click","a",function(){
alert("A");
});
しかし、これはうまくいきます...
$("body").on("click","div.class ul li a",function(){
alert("A");
});
あなたdiv.class ul liは動的に作成されていると思います。on既存の要素 (たとえば、最も近い親) で関数を呼び出す必要があります。これが、 で呼び出されたときに機能する理由bodyです。
おそらく、ページがロードされた後、コードは動的にli要素を挿入しています。イベントの委任を機能させるには、DOMがであるときに存在する最も近い要素(親、祖父母など)にバインドする必要がありますready。たぶんul?
$("div.class ul").on("click","li a",function(){
alert("A");
});