Javascript 更改附加按钮的属性
我有一个按钮,它是在ajax调用成功后由jquery创建的。 我还想通过jquery更改它的背景色,但它根本不起作用。 有趣的是,我尝试在脚本之外的html区域添加完全相同的按钮,效果很好。如何处理Javascript 更改附加按钮的属性,javascript,jquery,css,Javascript,Jquery,Css,我有一个按钮,它是在ajax调用成功后由jquery创建的。 我还想通过jquery更改它的背景色,但它根本不起作用。 有趣的是,我尝试在脚本之外的html区域添加完全相同的按钮,效果很好。如何处理 <script> $(".submitInput1").click(function() { event.preventDefault(); $(".toBanList").html(""); $.ajax({ type: "GET"
<script>
$(".submitInput1").click(function() {
event.preventDefault();
$(".toBanList").html("");
$.ajax({
type: "GET"
url: "/searchFriendsToBlock",
dataType: "json",
data: {
},
success: function(msg) {
for (var i = 0; i <= msg.length; i++) {
$(".banSearchResultList").append("<li class='toBanList'><img class='avatarImage' src='" + msg[i]['avatar'] + "'>" + msg[i]['login'] + "<br>" + msg[i]['first_name'] + " " + msg[i]['last_name'] +
"<button class='blockButton2' style='background-color:blue'>Block user</button>\n\
<button class='blockButton1' style='background-color:blue'>Block chat</button></li>");
}
}
});
});
</script>
<script>
$(".blockButton1").click(function() {
$(".blockButton1").css("background-color", "red");
$(".blockButton1").attr("background-color", "red");
})
</script>
$(“.submitInput1”)。单击(函数(){
event.preventDefault();
$(“.toBanList”).html(“”);
$.ajax({
键入:“获取”
url:“/searchFriendsToBlock”,
数据类型:“json”,
数据:{
},
成功:功能(msg){
对于(var i=0;i我相信问题在于,注册处理程序时,click()只对DOM
中存在的元素有效。请尝试改用on()
:
在您的示例中:
$(".banSearchResultList").on('click','.blockButton1',function() {
$(this).css("background-color", "red");
});
您需要使用事件委派,因为按钮是动态创建的,使用on
方法,如下所示:
$(".banSearchResultList").on("click", ".blockButton1", function() {
$(this).css("background-color", "red");
})
请用这个
$("body").on('click', '.blockButton1', function(e) {
$(this).css("background-color", "red");
});
$(“.submitInput1”)。单击(函数(){
event.preventDefault();
$(“.toBanList”).html(“”);
$.ajax({
键入:“获取”
url:“/searchFriendsToBlock”,
数据类型:“json”,
数据:{
},
成功:功能(msg){
对于(var i=0;我尝试在for循环中添加Block chat
。如果您可以使用内联css
或class
@RayonDabre编写,为什么要使用jQuery设置它,但我需要它们为蓝色,并在单击后更改。在这种情况下,当DOM中不存在元素时,您将绑定事件。请阅读关于事件的内容,或者只需在之后绑定事件rappend
operation..感谢您发布此问题的答案!堆栈溢出时不建议使用纯代码答案,因为原始海报(或未来读者)可能会遇到困难为了理解它们背后的逻辑。请编辑您的问题,并包括对您的代码的解释,以便其他人可以从您的答案中受益。谢谢!嘿@Danniel您尝试过我的代码了吗?它正在工作,因为我选择了blockButton1并在其上注册了单击事件。@Lalit Shingadiya编辑问题并在那里添加Commos,您做了什么以及我是如何做的这行不通。
<script>
$(".submitInput1").click(function() {
event.preventDefault();
$(".toBanList").html("");
$.ajax({
type: "GET"
url: "/searchFriendsToBlock",
dataType: "json",
data: {
},
success: function(msg) {
for (var i = 0; i <= msg.length; i++) {
$(".banSearchResultList").append("<li class='toBanList'><img class='avatarImage' src='" + msg[i]['avatar'] + "'>" + msg[i]['login'] + "<br>" + msg[i]['first_name'] + " " + msg[i]['last_name'] +
"<button class='blockButton2' style='background-color:blue'>Block user</button>\n\
<button class='blockButton1' style='background-color:blue'>Block chat</button></li>");
}
// Adding this line of code.
$(".blockButton1").on('click',function() {
$(".blockButton1").css("background-color", "red");
});
// End
}
});
});
</script>