鍍金池/ 問(wèn)答/HTML/ 怎么給Ajax元素節(jié)點(diǎn)動(dòng)態(tài)綁定事件?

怎么給Ajax元素節(jié)點(diǎn)動(dòng)態(tài)綁定事件?

需要實(shí)現(xiàn)的功能是“將所有元素節(jié)點(diǎn)都綁定mousemove事件”,這個(gè)功能對(duì)于靜態(tài)節(jié)點(diǎn)很容易實(shí)現(xiàn),但對(duì)于VUE等框架打包的項(xiàng)目來(lái)說(shuō),它們?nèi)茿jax元素,該怎么給那些元素綁定事件呢?

所有元素的id和class是不可見的。

回答
編輯回答
孤島

1.如上面回答中,在創(chuàng)建元素的時(shí)候,直接創(chuàng)建事件是可以的
2.創(chuàng)建的所有元素都給相同的class名稱,用on監(jiān)聽元素,即可監(jiān)聽到動(dòng)態(tài)創(chuàng)建的元素

$(document).on('click','.classname',function(){});

推薦第二種方法,事件耦合在html中邏輯容易混亂

2017年9月13日 10:55
編輯回答
負(fù)我心

可以通過(guò)事件委托實(shí)現(xiàn),事件委托實(shí)用的場(chǎng)景主要包含下面2個(gè)

  1. 大量元素相同事件處理
  2. 動(dòng)態(tài)元素事件處理

示例代碼如下:

parent. onclick=function(event){
    let target = event.target;//精確的事件觸發(fā)元素
    /* 根據(jù)你自己的業(yè)務(wù),對(duì)應(yīng)進(jìn)行處理 */
}
2017年11月14日 08:04
編輯回答
你好胸

直接在創(chuàng)建結(jié)構(gòu)的時(shí)候,就把方法名和事件加在結(jié)構(gòu)中, 下面只需在months: 寫方法即可。
<div @click="add()"></div> 這樣子

2017年11月15日 12:02
編輯回答
涼薄
$("父級(jí)靜態(tài)節(jié)點(diǎn)").on("click","動(dòng)態(tài)節(jié)點(diǎn)",function(){
    //do something
})

這樣可以為動(dòng)態(tài)添加的節(jié)點(diǎn)綁定事件

2018年9月4日 17:24