亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

javascript – Frage, ob das Ereignis nach dem dynamischen Laden und anschlie?enden Binden des Ereignisses nicht funktioniert
淡淡煙草味
淡淡煙草味 2017-07-05 11:05:56
0
5
1179

Nachdem ich mit Ajax drei P-Boxen dynamisch erstellt habe, warum funktioniert es dann nicht, wenn ich Klickereignisse an die Boxen binde? Ist es nur sinnvoll, Ereignisse an ihn zu binden, wenn Ajax erstellt wird? Dadurch wird es dreimal gebunden. Gibt es einen besseren Weg?

淡淡煙草味
淡淡煙草味

Antworte allen(5)
阿神

比如你可以看看jquery實現(xiàn)

$("#a").click(callback);
$(document).on('click','#a',function(){ //TODO });
$("#a").live();//過時
Ty80

$(document).on('click','#a',function(){ //TODO }); 借一樓回答的 感覺可以 先找到他父元素再綁定

僅有的幸福

這個我以前碰過,動態(tài)加載的DOM用onclick是不起作用的,因為只對存在的dom起作用,用$(document).on('click','#a',function(){})才行,你可以試試看。

phpcn_u1582

你可以用事件委托來實現(xiàn),就比如說

<p class="wrapper">

</p>

你想在wrapper里面添加一個列表(.list),委托你可以這樣寫(簡單寫法):

//獲取目標(biāo)節(jié)點(這里只支持class獲取)
//ele: 起始元素,最內(nèi)側(cè)的元素
//selector: className,
//stopTrget: 委托容器元素
function getTargetNode(ele,selector,stopTarget){
    var clsReg = new RegExp(selector),
        className = ele.className;
        
    if(ele === stopTarget) return null;
        
    if(clsReg.test(className)){
        return ele;
    } else {
        return getTargetNode(ele.parentNode,selector);
    }
};

//委托
function addEvent(event,ele,selector){
    ele["on"+event] = function(e){
        e = e || event;
        var target = e.target || e.srcElement;
        //當(dāng)滿足觸發(fā)條件時
        if(getTargetNode(target,selector,ele)){
            //The deep♂dark♂fantasy
        }
    };
}

addEvent("click",document.querySelecor('.wrapper'),'.list');
過去多啦不再A夢

用JQ的on方法和delegate方法都可以,原生的話用事件委托

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage