这可能是一个简单的问题,但我不能让它工作.我正在使用一个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"); }); });
当HTML被加载到对话框中时,我有一个函数myFunction().在环顾四周以后,我尝试在.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"),modal: true,open : myFunction // this should work... })