如果您的事件處理程序未執行異步調用,則觸發的事件將執行並完成,之後纔會轉到下一行。 JsFiddle
$('#productFamilyId').val(data.contents.productfamily);
$('#productFamilyId').trigger('change');
// Execute after change complete
$('#productId').val(data.contents.product);
$('#productId').trigger('change');
使用異步調用在事件處理程序(setTimeout的,阿賈克斯等),你可以這樣做:JsFiddle
在事件處理程序添加一個回調函數的參數:
$("#productFamilyId").change(function(e, callback) {
// Simulating ajax
setTimeout(function() {
if (typeof callback === "function")
callback();
}, 3000);
});
並觸發這樣的:
$('#productFamilyId').trigger('change', function() {
$('#productId').val(data.contents.product);
$('#productId').trigger('change');
});
@阿切爾讓我給你打電話謝謝,謝謝你隊友:P – Shreedhar 2012-07-19 15:56:33