如何为新注入的html附加jquery事件处理程序?
如果HTML尚未生成,我将如何使用如何为新注入的html附加jquery事件处理程序?,jquery,event-handling,Jquery,Event Handling,如果HTML尚未生成,我将如何使用.on()?jQuery页面表示,如果将新HTML注入页面,请在将新HTML放入页面后选择元素并附加事件处理程序 但我真的不知道该怎么做。有没有办法“重新加载”事件处理程序 所以如果我有 $(document).ready(function(){ $('.test').on('click', function(){ var id = $(this).attr('id'); console.log("clicked" + i
.on()
?jQuery页面表示,如果将新HTML注入页面,请在将新HTML放入页面后选择元素并附加事件处理程序
但我真的不知道该怎么做。有没有办法“重新加载”事件处理程序
所以如果我有
$(document).ready(function(){
$('.test').on('click', function(){
var id = $(this).attr('id');
console.log("clicked" + id);
});
generatePage();
});
当generatePage()使用.test
创建一组div时,如何重新绑定.on()
我知道有人问过类似的问题,但在快速搜索后,我没有找到我要查找的内容。使用.on,如下面的示例所示。可以假定body标记始终可用,因此可以安全地将事件处理程序附加到body并将事件委托给选择器,在本例中为。test
$(document).ready(function(){
$('body').on('click', '.test', function(){ // Make your changes here
var id = $(this).attr('id');
console.log("clicked" + id);
});
generatePage();
});
或者,如果generatePage()也在生成html,则头部和身体标记将使用文档作为选择器
$(document).ready(function(){
$(document).on('click', '.test', function(){ // Make your changes here
var id = $(this).attr('id');
console.log("clicked" + id);
});
generatePage();
});
根据。on接受以下参数:
.on( events [, selector] [, data], handler(eventObject) )
包括选择器如下所述:
当提供选择器时,事件处理程序称为
委派。当事件直接发生在上时,不调用处理程序
绑定元素,但仅适用于
匹配选择器。jQuery将事件从事件目标向上冒泡
到处理程序所附加的元素(即,最内层到
最外层的元素),并为沿着该元素的任何元素运行处理程序
与选择器匹配的路径
$(document).ready(function(){
$(document).on('click', '.test', function(){ // Make your changes here
var id = $(this).attr('id');
console.log("clicked" + id);
});
generatePage();
});