我有以下函数,当绑定到onClick()事件时工作正常。但是如果事件被触发onReady()它无法完成它的工作..在方法中的任何点添加alert()允许它工作正常..所以我知道它与异步AJAX请求有关。我只是没有运气成功添加延迟或回调逻辑。不知道如何处理它。
是否存在改进方法的简单方法?我最终在onOpen()上为jQueryUI对话框调用了这个方法..但是对话框触发并且为空..
function performElqLookups(formName) {
var elqTracker = new jQuery.elq(459);
//first do the visitor lookup
var visitorLookup = 'ba109a0a75294aed95ca72b0bc3b345d';
elqTracker.getData({ key: visitorLookup, lookup: "", success: function() {
//then check for an email address on the visitor record and do a contact data lookup if there is one
if (typeof GetElqContentPersonalizationValue == "function") {
var email = GetElqContentPersonalizationValue("V_ElqEmailAddress");
if (email != "") {
var contactLookup = 'c7e9dd7150464162af6fe1cf471627e5';
elqTracker.getData({ key: contactLookup, lookup: "<C_EmailAddress>" + email + "</C_EmailAddress>", success: function() {
populateForm(formName);
trackPage().done(function( guid ) {
$('#elqCustomerGUID').val(guid);
});
}});
}
}
}});
}
答案 0 :(得分:0)
您可以将async:false
传递给任何ajax调用,例如get() load()
和ajax()
另外,请记住,您应始终使用$(function(){..code in here..})
包装代码,因为这是document.onReady的简写