正常情况下,这样的写法是正确的。可是往往当我们需要通过jquery动态的添加一些html元素到界面时,会发现定义的全局方法对新增元素无效了,举个例子:
$("#box").append("<div class='bot'>123</div")
以前处理的方案是初始化事件时使用live,栗如:
$(".bot").live("click", function() {
alert("123");
今天使用jquery 1.10.2时居然提示live关键字无效,百度一下,原来在新版本的jquery中去掉了live关键字,新的写法如下:
$(function() {
$(document).on("click", ".bot", function(e) {
alert("789")
测试后,成功解决
一般情况,我们会在页面初始化完成后对class定义一些全局事件,举个例子:$(function() { $(".bot").on("click", function() { alert("977");});正常情况下,这样的写法是正确的。可是往往当我们需要通过jquery动态的添加一些html元素到界面时,会发现定义的全局方法对新增元素无效了,举个例子:
vue项目用原生js动态创建的div的样式不起作用该怎么办一、问题描述二、问题解决
一、问题描述
最近做项目遇到这样一个奇怪的问题,用了高德地图的自定义窗体,但是发现样式无论如何都不起作用。网上查了些资料才得以解决
先看一下不起作用的代码
可以看到样式和动态创建的div都没问题,但是样式就是不起作用,如下图
二、问题解决
通过查看控制台可以看到样式起作用的div都有这样一个特征
都有data-v-xxxxxx这样类似的
再看看我们自己写的渲染出来是什么样的
可以发现并没有上面的特征,所以我就猜想是
定义及语法 !important,作用是提高指定样式规则的应用优先权(优先级)。
语法格式{ cssRule !important},即写在定义的最后面,例如:box{color:red !important;}。
浏览器识别`ie7`及 ie7 firefox chrome等浏览器下,已经可以识别 !important属性, 但是IE 6.0IE6及更早浏览器下仍然不能完全识别。important的样式属性和覆盖它的样式属性单独使用时(不在一个{}里),IE 6.0认为! important优先.
当我们使用jQuery动态加载html元素,但是元素上面又绑定了Click等事件,针对新添加的元素这些事件是无效的,那么应该怎样解决呢?
live方法
live( type, fn )
jQuery 1.3中新增的方法。给所有当前以及将来会匹配的元素绑定一个事件处理函数(比如click事件)。也能绑定自定义事件。
目前支持 click, dblclick, mousedo...
前端:
动态添加
html元素,onclick失效
现象:
使用on
事件,发现
动态添加的
元素绑定失效。
$("#
id").on(“click”,function () {
console.log(“deldeldel”)
解决:
使用on绑定
事件
$(document).on(‘click’,’#
id’,function() {
console.log(“deldeldel”)
前面一篇文章提到动态添加、删除一行的实现方法
在项目中第一次写动态添加的时候,遇到了一个问题,就是添加的标签,之前绑定的同class事件都失效了,查资料后发现,是绑定事件使用的方法不对,下面说一下。
首先是失效情况
$('.btn').click(function() {
alert('点击了按钮');
可以看到上面我是用.click()的方式绑定事件的,这个方法对动态添加的元...
可以通过以下两种方式获取指定元素,从而达到事件响应的效果!$("body").on("click", ".className", function () { ....});或者$(document).on("click", ".className", function () { ....});
转载于:https://www.cnblogs.com/renmengkai/p/9183878.h...