CSS 在 .after() 之后不起作用
css does not work after .after()
在我的 html 代码中,我通过单击"蓝色"或"红色"按钮更改所有 ID 为"#mutable"的元素的背景颜色。使用第三个按钮"加载"我.append((具有相同ID的新HTML。但是新元素的背景颜色没有改变吗?出了什么问题?
小提琴
.html
<div id="mutable" style="width:50px;height:50px;" class="blue">sjdfhksfh</div>
<div id="newHTML">newHTML</div>
.js
$(document).ready(function() {
$('#blue').on('click', function() {
$('#mutable').trigger('blue');
});
$('#red').on('click', function() {
$('#mutable').trigger('red');
});
$('#load').live('click', function(event) {
event.preventDefault();
$('#newHTML').after('<div id='"mutable'" style='"width:50px;height:50px;'">...</div>');
event.stopPropagation();
});
$('#mutable').bind('red', function(e) {
$('#mutable').addClass('red').removeClass('blue');
});
$('#mutable').bind('blue', function(e) {
$('#mutable').addClass('blue').removeClass('red');
});
});
您总是创建一个 id #mutable
的新div。现在,就 ID 而言,jQuery 只是沿着 DOM 运行,当它找到您的 ID 的第一次出现时,它会更改它,但不会更改其他内容。
对于某些解决方案,您可以使用类.mutable
而不是 id - 但是每个创建的div 都会在单击时更改。
或者,您可以使用 #mutable1
、#mutable2
等数字枚举您的 ID,并更改菜单以选择特定的div。
或者,要仅更改动态创建的div 的最后一次出现,请使用:last
- CSS- 伪类。
1( id 在页面上应该是唯一的。像这样的选择器#mutable
只匹配第一个元素和这样的 id ——所以在按"加载"后,你创建具有相同 id 的新元素,但 $ 仍然匹配旧元素
2(尝试下一步(我只是将您的id选择器更改为attr选择器,允许找到所有带有id的元素(:
$('#mutable').bind('blue', function(e) {
//alert('blue');
$('[id=mutable]:last').addClass('blue').removeClass('red');
});
http://jsfiddle.net/q3wzwr6z/
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- JQuery hide()在show()之后不起作用,反之亦然
- ng模型在$(element).clone()之后不起作用
- CKEditor - 插入文本在 setData 之后不起作用
- UI - 手风琴在 empty() 和 append() 之后不起作用
- Ckeditor插件功能在使用setData(“hai”)之后不起作用;
- Jquery事件在主干呈现中/之后不起作用
- 某些函数在 .append 之后不起作用
- jquery ajax 在 str.rereplace 之后不起作用
- CSS :悬停在 jquery load();之后不起作用
- jQuery .click() 在 replaceWith() 之后不起作用
- JavaScript 在 document.write 之后不起作用
- CSS 在 .after() 之后不起作用
- AngularJS$apply在输入类型范围的ngChange之后不起作用
- ExpressJs的res.sendFile在中间件之后不起作用
- JQuery hide()在fadeIn()之后不起作用
- JavaScript For循环在代码的某一行之后不起作用
- Focus()似乎在onblur()之后不起作用
- ASP.NET ajax函数在onchange事件之后不起作用
- 在此Javascript代码中,setInterval()在clearInterval()之后不起作用