为啥我js动态添加的a标签相应的js会失效

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥我js动态添加的a标签相应的js会失效相关的知识,希望对你有一定的参考价值。

我用js动态添加a标签后发现在前面写的a标签的事件没有效果了,本来是当鼠标移上去会有效果,但是动态加上去的a标签没有这个效果.

    个人理解

    我猜测的会失效,应该是通过jquery绑定的事件失效了吧?

    如何解决

// 在动态添加元素后,如果之前绑定事件是通过click 绑定,则动态添加的元素不会被绑定。
//可以通过delegate 进行绑定
$('body').delegate('a','click',function()
    //此处为处理过程
);
//而且要保证$('body') 中的选择器不是动态添加的。

   3. 如果该回答没有对应您的问题,请您贴出您的问题代码。

参考技术A 你在生成a标签以前绑定在a上面的事件属于生成a以前的a,举个例子,现在有一个a(alpha),它有一个hover事件,现在我创建了一个a(beta),那么beta就不拥有alpha拥有的事件。因为jquery的事件绑定不是动态的,后来创建的a均不属于先前的hover事件的对象本回答被提问者采纳 参考技术B 用on方法来做事件委托, 给动态创建的a标签的父元素绑定点击事件 参考技术C 这些问题你应该 把代码贴出来

为啥HTML调用JS无效

    如果调用的是外部js文件,看看路径是否正确;

    如果是在HTML文件中写在head标签中,看你的函数或者其他是否写错;

    有时候js的script标签要写在body中相应元素标签的下面,才会有效。

参考技术A   javascript是解释型语言,由上到下捉行分析,写在相关HTML标签之前的JS代码,如不是函数,则不能操纵HTML!您可以把JS代码放到您所要操纵的HTML标签之后,或者把JS代码设计成一个函数,以供HTML调用! 参考技术B JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

在HTML中JS无效,主要看一下你的JS书写是否正确,可以用网页调试工具来看一下,出错的话会有提示。
参考技术C 可能是js代码哪里有错误,才无法执行。 参考技术D <script src="js文件地址"></script>
你也可以将这串写到html文件最后,让他最后加载试试

以上是关于为啥我js动态添加的a标签相应的js会失效的主要内容,如果未能解决你的问题,请参考以下文章

Easyui中使用jquery或js动态添加元素时出现的样式失效的解决方法

js 动态添加元素(divliimg等)及设置属性

js如何获取动态添加的标签class?

jQuery对 动态添加 的元素 绑定事件(on()的用法)

js中如何动态的将字典添加到列表中

js如何为动态添加进来的a超级链接元素添加click事件函数