这可能是一个简单的问题,但我无法完全解决它。我正在使用 jQuery 对话框来显示从我的网站上的另一个页面加载的表单。用户单击链接,这将启动对话框。我想做的是将 HTML 加载到对话框后运行一个函数。这是我加载对话框的代码:
$(document).ready(function () {
$(".openDialog").live("click", function (e) {
e.preventDefault();
$("#dialogBox").dialog({
title: $(this).attr("data-dialog-title"),
close: function() { $(this).remove() },
modal: true
})
.load(this.href);
});
$(".close").live("click", function (e) {
e.preventDefault();
$(this).closest(".dialog").dialog("close");
});
});
我有一个函数 myFunction(),当 HTML 加载到对话框中时我想调用它。经过一番查找后,我尝试在 .load 中指定该函数,如下所示:
.load(this.href, myFunction());
我还尝试使用 open 事件,如下所示:
open: myFunction(),
我做错了什么?
最佳答案
解决方案#1:
.load(this.href, myFunction);
解决方案#2:
.load(this.href, function(){
myFunction();
});
解决方案#3(首选):
open: myFunction,
解决方案#4:
open: function(){
myFunction();
}
<小时/>
这是为什么?
var foo = myFunction(); // `foo` becomes your function return value
var bar = myFunction; // `bar` becomes your function
bar();
<小时/>
您的代码应如下所示:
$("#dialogBox").load('http://example.com').dialog({
title: $(this).attr("data-dialog-title"),
close: function() { $(this).remove() },
modal: true,
open : myFunction // this should work...
})
关于jquery - 加载 jQuery 对话框后运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12337271/