触发点击事件后如何执行警报

时间:2012-09-05 09:49:18

标签: javascript jquery

我试图在执行触发事件后执行警报消息。我的代码:

 $(".addpage").trigger("click").queue(function () { 
  alert($(".page:first-child").attr("id")); 
 });

但问题是在完成触发事件功能之前警报正在执行。我在这里做错了什么?

2 个答案:

答案 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;
}

演示: http://codebins.com/bin/4ldqp7m