最近项目中,遇到一个问题:给jQuery生成到页面中的代码添加事件时,不起作用。
比如:
html: <div id="bt"></div>
JS:
$(document).ready(function(){
$("#bt").html("<input type='button' class='add'>");
//添加事件
//如果直接添加click(),在显示页面中无效果
//$(".add").click(function(){alert("dddd");});
//用live()实现
$(".add").live("click",function(){
alert("yes,it is ok!");
});
jQuery 事件 - live() 方法
定义和用法
live() 方法为被选元素附加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。
通过 live() 方法附加的事件处理程序适用于匹配选择器的当前及未来的元素(比如由脚本创建的新元素)。
语法
$(selector).live(event,data,function)
参数描述
event必需。规定附加到元素的一个或多个事件。由空格分隔多个事件。必须是有效的事件。
data 可选。规定传递到该函数的额外数据。
function 必需。规定当事件发生时运行的函数。