我使用jquery中的append方法,动态添加新的元素内容,新添加的元素上的onlick事件不起作用。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我使用jquery中的append方法,动态添加新的元素内容,新添加的元素上的onlick事件不起作用。相关的知识,希望对你有一定的参考价值。

代码如下:
<div id="test1"><span>测试</span><div>
我通过$("#test1").append("<div>新添加的元素<input type='button' value='点击' onclick='alert(1)' </div>"); 在test1中增加了新的元素,但是点击按钮,没有任何反应。(在ie中是有问题的,在google浏览器中是没问题的)

jquery中有一个叫live的方法:jQuery 给所有匹配的元素附加一个事件处理函数,即使这个元素是以后再添加进来的也有效。 参考技术A 既然用了jquery了,就不要这样写了,给它加个id,先在脚本中把方法写出来。应该没有问题的,我老动态加载有事件的元素。 先加载这个脚本。再append 。
<script >
$("#but1").click(function()
alter(1);
);
</script>
参考技术B   呵呵 不显示才是对的呢
  你看看要添加的这句话就知道了
  <div>新添加的元素<input type='button' value='点击' onclick='alert(1)' </div>
而input 标签没有闭合 所以ie没法解析追问

不好意思,那是我刚才往知道上敲的时候,打错了,应该是:$("#test1").append("新添加的元素 ");

追答

首先,先确定下是否执行了该语句
可以在这个语句后加一条打印语句,如果打印了说明jquery的基本引用是没问题的。
如果没反应就是基本上jquery对象 出现问题了,可以查看引用jquery的src是否正确
我以前在项目中还遇到一个问题,在编辑js的页面中不知道怎么混入了特殊字符,不知道怎么的就是无法运行,后来新建重新copy了下就好
如果是这样的 ie对某些特殊字符无法解析,所以更无法执行。
而Google就有可能支持了这种特殊字符
而且假如没有语法错误的话这种基本的操作ie应该是肯定支持的。还是检查检查完整性吧!

本回答被提问者采纳

用Jquery动态append方式加入标签时Css样式丢失的解决方法

一般在Jquery中会用下面的方式来添加新标签:

      var obj = "<fieldset data-role=‘controlgroup‘ data-type=‘vertical‘ data-role=‘fieldcontain‘>

                <input id=‘menu0" type=‘checkbox‘/><label for=‘menu0‘> 复选框 </label> </fieldset>";  //按个人要求拼接标签
$("#所在标签id").append(obj);  // 用append 方式添加拼接的标签

$("#所在标签id")..listview("refresh");   //在使用‘ul‘标签时才使用,作用:刷新列表

$("#所在标签id").trigger("create");  //重点:这名的意思是重新加载所在标签的样式。非常有用的一句话,不加这一句你动态append的标签将丢失Css样式

以上是关于我使用jquery中的append方法,动态添加新的元素内容,新添加的元素上的onlick事件不起作用。的主要内容,如果未能解决你的问题,请参考以下文章

jquery 动态添加tab 效果

如何获取jQuery中动态添加的元素

用Jquery动态append方式加入标签时Css样式丢失的解决方法

js原生方式实现jquery中的append()方法

jquery中 如何 使用 append() 方法 新添加的元素? $('#id').html()取不到值?

Jquery动态添加标签元素,在指定标签前或者标签后(append/prepend用法)