如果您的事件处理程序未执行异步调用,则触发的事件将执行并完成,之后才会转到下一行。 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