在对元素绑定事件时可能会出现没有效果的情况,这个时候就需要考虑,你绑定的元素是否是动态添加的,动态数据也就是使用jQuery添加的数据,下面就是针对动态数据绑定事件的解决方法;
on()方法
自jQuery版本1.7 起on()方法是bind()、live()和delegate()方法的新的替代品。
$(selector).on(event,childSelector,data,function)
event(事件):必需。规定要从被选元素移除的一个或多个事件或命名空间
childSelector(子选择器):可选。规定只能添加到指定的子元素上的事件处理程序(且不是选择器本身,比如已废弃的 delegate() 方法)
data(数据):可选。规定传递到函数的额外数据
function(函数):可选。规定当事件发生时运行的函数
$("button").on("click",function(){
alert("按钮被点击了");
});
live()的方法
live()方法在jQuery版本1.7中被废弃,在版本1.9 中被移除,并以on()方法代替
live() 方法为被选元素附加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。
通过 live() 方法附加的事件处理程序适用于匹配选择器的当前及未来的元素(比如由脚本创建的新元素)
$(selector).live(event,data,function)
event(事件):必需,规定添加到元素的一个或多个事件
data(数据):可选,规定传递到该函数的额外数据
function(函数):必需,规定当事件发生时运行的函数
$("button").live("click",function(){
//事件触发后弹出框显示按钮被点击
alert("按钮被点击");
});