一个jQuery事件绑定的问题
2016-04-09 09:20
791 查看
/*搜索按钮*/
$("#searchChannel").click(function(){
//1.获取搜索条件
var searchBy = $("#channel_typeid_temp").val();
console.info(searchBy);
//2.发起请求
$.getJSON("../reward/getWebsiteBy",{ searchBy:searchBy},function(result){
//3.清空原来的列表数据
$(".table-main tbody").empty();
if(result.length==0){
$(".table-main tbody").append($("<tr><td colspan='3'>没有找到任何结果,请改变搜索条件</td></tr>"));
}else{
//4.添加json中的数据
$.each(result, function(i, field){
console.info(i+"----"+field.WebsiteId+"----"+field.class_name);
//生成checkbox
var tdCheckbox = "<td><input type='checkbox' name='ids' value='"+field.WebsiteId+"_"+field.id+"'"+"/></td>";
//生成一个tr表格行
$("<tr></tr>").append($(tdCheckbox))
.append("<td>"+field.WebsiteId+"</td>")
.append("<td>"+field.class_name+"</td>")
.appendTo($(".table-main tbody"));//添加到tbody里面
});
//这里非常重要,需要重新绑定这个事件,否则点击无效
$("[name='ids']:checkbox").click(function(){
check();
});
}
});
});
jQuery新添加元素之后重新添加事件问题。往表中新添加的checkbox元素需要重新绑定其点击事件,否则点击无效。这是因为一个执行顺序问题,你先对原来那些checkbox绑定了事件,现在你将其删除了,这是事件相当于就没有了事件源。你动态增加的checkbox即使其name与前面一样,其因为没有执行绑定事件的语句,也就是说他没有事件,当然点击无效。总结起来就是:动态增加的元素需要增加之后绑定相应的事件,以前的不起作用,即使条件一样。
$("#searchChannel").click(function(){
//1.获取搜索条件
var searchBy = $("#channel_typeid_temp").val();
console.info(searchBy);
//2.发起请求
$.getJSON("../reward/getWebsiteBy",{ searchBy:searchBy},function(result){
//3.清空原来的列表数据
$(".table-main tbody").empty();
if(result.length==0){
$(".table-main tbody").append($("<tr><td colspan='3'>没有找到任何结果,请改变搜索条件</td></tr>"));
}else{
//4.添加json中的数据
$.each(result, function(i, field){
console.info(i+"----"+field.WebsiteId+"----"+field.class_name);
//生成checkbox
var tdCheckbox = "<td><input type='checkbox' name='ids' value='"+field.WebsiteId+"_"+field.id+"'"+"/></td>";
//生成一个tr表格行
$("<tr></tr>").append($(tdCheckbox))
.append("<td>"+field.WebsiteId+"</td>")
.append("<td>"+field.class_name+"</td>")
.appendTo($(".table-main tbody"));//添加到tbody里面
});
//这里非常重要,需要重新绑定这个事件,否则点击无效
$("[name='ids']:checkbox").click(function(){
check();
});
}
});
});
jQuery新添加元素之后重新添加事件问题。往表中新添加的checkbox元素需要重新绑定其点击事件,否则点击无效。这是因为一个执行顺序问题,你先对原来那些checkbox绑定了事件,现在你将其删除了,这是事件相当于就没有了事件源。你动态增加的checkbox即使其name与前面一样,其因为没有执行绑定事件的语句,也就是说他没有事件,当然点击无效。总结起来就是:动态增加的元素需要增加之后绑定相应的事件,以前的不起作用,即使条件一样。
相关文章推荐
- JQuery概述
- struts2 多文件上载 jquery jquery.form ajax 无刷新
- 【JQuery】自定义类级别插件—— twoaddresult
- Jquery 如何获取Json类型 Map的值?
- 【JQuery】自定义对象级插件——lifocuscolor插件
- 【JQuery】右键菜单插件——contextmenu
- 【JQuery】搜索插件——autocomplete
- jQuery插件的理解 $.extend()与$.fn.extend()
- 通过checkbox的属性理解jquery获取attribute与property
- 不定义JQuery插件,不要说会JQuery
- jQuery.ajax 中的error
- jquery +css 自定义登录框
- 4-jQuery - AJAX post()
- jQuery之empty、remove、detach
- 3-jQuery - AJAX get()
- 名企动态网站开发--jQuery实现flash动画效果
- 用JS模拟购物车(jQuery实现)
- jquery.validate全攻略
- jquery-问题解答
- jQuery的datagrid转换文字