我试图在执行触发事件后执行警报消息。我的代码:
$(".addpage").trigger("click").queue(function () {
alert($(".page:first-child").attr("id"));
});
但问题是在完成触发事件功能之前警报正在执行。我在这里做错了什么?
答案 0 :(得分:1)
使用.queue(回调),您将在元素的标准“fx”队列末尾添加一个新函数,用于元素效果(动画)。因此,如果.click()事件处理程序不包含任何元素动画,则.queue()回调将立即生效。
答案 1 :(得分:0)
在这里,我为上述问题做了完整的垃圾箱。请找到演示链接并查看..
演示: http://codebins.com/bin/4ldqp7m
<强> HTML 强>
<ul id="pages">
<li class="page" id="1">
Page-1
</li>
<li class="page" id="2">
Page-2
</li>
<li class="page" id="3">
Page-3
</li>
<li class="page" id="4">
Page-4
</li>
</ul>
<强>的jQuery 强>
$(function() {
$(".addpage").click(function(e) {
var newId = parseInt($("#pages li.page:last").attr('id')) + 1;
$("#pages").append("<li class='page' id='" + (newId) + "'>Page-" + (newId) + "</li>");
});
$(".addpage").trigger('click');
$(".addpage").queue(function() {
alert("New Page with Id #" + $("#pages li.page:last").attr('id') + " has been added...!");
});
});
<强> CSS:强>
#pages{
list-style:none;
margin:5px;
padding:2px;
width:120px;
}
#pages li{
border:1px solid #1A1A1A;
width:120px;
background:#4fdefd;
text-align:center;
}
.addpage{
background:#53a5f9;
border:1px solid #1142fd;
}
.addpage:hover{
background:#53cdfa;
}