2012-09-05 48 views
0

我試圖在執行觸發器事件後執行警報消息。我的代碼:如何在觸發器單擊事件後執行警報

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

但是,這裏的問題是在完成觸發事件函數之前執行警報。我在這裏做錯了什麼?

+1

是什麼觸發了'click'處理呢?一些動畫或ajax?如果您可以編輯頁面源,那麼您的最佳解決方案就是其他地方。 –

+0

你是否正在尋找像這樣的一個http://stackoverflow.com/questions/9026584/jquery-triggering-click-events-one-after-the-other –

+0

你能告訴我們一個演示在jsfiddle.net –

回答

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...!"); 
    }); 
}); 

Ç SS:

#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

1

使用.queue(回調函數),您將在用於元素效果(動畫)的元素的標準「fx」隊列的末尾添加一個新函數。因此,如果.click()事件處理程序不包含任何元素動畫,則.queue()回調將立即生效。

相關問題