jquery 通过append追加一个select,然后要给select change事件,在火狐下面没问题,但是在ie下面却不能运
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery 通过append追加一个select,然后要给select change事件,在火狐下面没问题,但是在ie下面却不能运相关的知识,希望对你有一定的参考价值。
代码:
$("#item_list").append("<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td><select name=\"pur_classid[]\" id=\"type"+newid+"\" class=\"pur_classid\">"+$("#optionst").html()+"</select></td><td><div id=\"stype"+newid+"\"><select name=\"select\" id=\"select\"><option>选择产品</option></select></div></td><td>"+$("#copy_info").html()+"</td><td><a href=\"javascript:void(0)\" class=\"del_item\"><img src=\"public/images/admin/close.png\" /></a></td>");
$(".pur_classid").live("change",function()
//alert("123");
var index = $(this).attr("id");
key = index;
myajax("admin/purchase.htm?act=product&typ=index&classid="+this.value,"sfun(msg,key)");
);
function sfun(msg,key)
if(msg)
$("#s"+key+" select").remove();
$("#s"+key).append(msg);
$(".pur_classid").live("change",function()
//alert("123");
var index = $(this).attr("id");
key = index;
myajax("admin/purchase.htm?act=product&typ=index&classid="+this.value,"sfun(msg,key)");
);
写进一个function。比如
function ChangeList()
$(".pur_classid").live("change",function()
//alert("123");
var index = $(this).attr("id");
key = index;
myajax("admin/purchase.htm?act=product&typ=index&classid="+this.value,"sfun(msg,key)");
);
然后
function sfun(msg,key)
if(msg)
$("#s"+key+" select").remove();
$("#s"+key).append(msg);
ChangeList();//这里调用
参考技术A 尊敬的用户,您好!很高兴为您答疑。
使用append方式进行代码控件组装有个很敏感的问题,就是转义字符(如常见的换行符等),此类字符在肉眼甚至开发IDE的界面都无法用肉眼识别,但是浏览器会敏感,会直接导致浏览器的渲染异常。因此建议您仔细检查一下您的字符输出。
希望我的回答对您有所帮助,如有疑问,欢迎继续咨询我们。 参考技术B 不用live 换成bind吧~~追问
不行,我试了,如果那样只是最开始显示出来的能用,后面追加的一样不能用
追答你这个是在操作当中为对象绑定事件。
正常来说bind()方法是可以的,只不过第二次出现的时候需要重新绑定。
live()方法应该可以解决这样的问题,不过可惜,就上面代码还真说不好问题出在哪里!
append追加元素绑定事件无效的解决办法
问题是:通过jQuery append(或者before、after,一样)新添加进网页的元素,常用的事件不能触发,比如:append了id 为 abc 的元素,那么 $(#abc).click(function(){})是没有效果的。
1. 网上说要用live()函数,亲测无效,应该是jQuery的版本问题,反正到目前为止是不能用了;
2. 解决方法:用on函数,要注意格式(楼主搞了半天,因为格式不对,哎,不说了…都是泪)
正确格式: $("outerSelector").on(‘eventType‘,‘selector‘,function(){});
outerSelector 是一个一直存在的DOM, selector是你要监听点击的节点;
例子: $(function(){
$("form").on(‘click‘,"[class=‘image‘]",function(){
this.remove();
})
})
突然发现各种知识深似海啊 要努力学习
以上是关于jquery 通过append追加一个select,然后要给select change事件,在火狐下面没问题,但是在ie下面却不能运的主要内容,如果未能解决你的问题,请参考以下文章