[英]How to style an appended div with a click event? Jquery
这是起作用的功能:
/*
$("#right-sidebar").click(function() {
$(this).append("<div class='editable'>hello world</div>");
$(".editable").css("background-color","red");
});
*/
它将在div内部添加一个id为“ right-sidebar”的div,其背景颜色为红色。
但我希望有两个不同的点击事件。 一个附加内部div,另一个附加样式。
$("#right-sidebar").click(function() {
$(this).append("<div class='editable'>hello world</div>");
});
$(".editable").click(function() {
$(this).css("background-color","red");
});
我将如何去做呢?
这是HTML:
<div id="right-sidebar">Content In Div</div>
问候,泰勒
您可以在单击后绑定单击,也可以使用live
绑定来预先监听它:
$("#right-sidebar").click(function() {
$(this).append("<div class='editable'>hello world</div>");
$(".editable").click(function() {
$(this).css("background-color","red");
});
});
// Or this:
$("#right-sidebar").click(function() {
$(this).append("<div class='editable'>hello world</div>");
});
$(".editable").live("click", function() {
$(this).css("background-color","red");
});
您还可以使用事件委派,更优选的是:
$("#right-sidebar").click(function() {
$(this).append("<div class='editable'>hello world</div>");
})
.delegate('.editable', 'click', function() {
$(this).css("background-color","red");
});
随着可编辑div的动态添加,您应该使用以下代码:
$(".editable").live("click", function () { //set as red });
其他一切在您的代码中都可以
如果我正确理解,则应该可以进行以下操作:
$(function(){
$("#right-sidebar").click(function() {
$(this).append("<div class='editable'>hello world</div>");
$(".editable").click(function(event) {
event.stopPropagation();
$(this).css("background-color","red");
});
});
})
编辑:由于.editable包含在#right-sidebar中,因此需要添加event.stopPropogation。 否则,单击.editable将添加另一个.editable,我认为这不是故意的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.