使用jQuery中append的新结点的class=“popovers”效果无效?
使用的是Bootstrap中的popovers效果,但是由于数据需要动态添加。而添加完的结点没有这个效果。
<a id="id" class='popovers' data-trigger='hover' data-placement='top'data-content=' 显示的文字'>文字</a>"
同样这份代码,如果直接写在HTML中,是有效的但是后期通过Ajax添加进去则是无效的。
那么我应该怎样去解决这个问题呢?
认证0级讲师
你可以这样子理解:在浏览器打开后,加载资源文件,加载dom树,渲染css,OK,一个页面完成了(静态了),然后你又添加了一个节点,可是页面已经渲染好了(onload已执行完了),所以,你新加的节点,css样式每一效果,你可以委托绑定事件,再动态给添加的原生再单独添加一次样式(修改和设置,一个意思);比如你点击某个元素,添加节点,委托父元素,绑定新元素样式添加事件
重新绑定事件
因为这里在html中写的这些attr都是通过js去执行的,如果你在ajax动态加载新的节点,虽然可以在html中再次添加这些属性,但是js却不会重新执行,所以没有效果。你看看bootstrap的官方文档,看看有没手动让这个效果执行的方法,可以在新的节点加载出来后,手动调用这个效果。
ajax改为同步请求
bootstrap有的东西,在动态添加的情况下是会失效的,比如我现在$('a').click(function(){....}),在动态添加的元素是不会执行的,你需要去仔细看看文档,看看人家的提示
你可以这样子理解:在浏览器打开后,加载资源文件,加载dom树,渲染css,OK,一个页面完成了(静态了),然后你又添加了一个节点,可是页面已经渲染好了(onload已执行完了),所以,你新加的节点,css样式每一效果,你可以委托绑定事件,再动态给添加的原生再单独添加一次样式(修改和设置,一个意思);比如你点击某个元素,添加节点,委托父元素,绑定新元素样式添加事件
重新绑定事件
因为这里在html中写的这些attr都是通过js去执行的,如果你在ajax动态加载新的节点,虽然可以在html中再次添加这些属性,但是js却不会重新执行,所以没有效果。
你看看bootstrap的官方文档,看看有没手动让这个效果执行的方法,可以在新的节点加载出来后,手动调用这个效果。
ajax改为同步请求
bootstrap有的东西,在动态添加的情况下是会失效的,比如我现在$('a').click(function(){....}),在动态添加的元素是不会执行的,你需要去仔细看看文档,看看人家的提示