Ajax在jQuery Dashboard中调用Widgets

时间:2011-09-22 20:26:00

标签: jquery ajax dashboard

我正在使用jQuery Dashboard插件来显示MySql表信息。我在这些小部件按钮中为每个mysql结果显示一个表单。该按钮执行ajax调用以传入表单id,然后检索要在jQuery对话框中显示的样式化表单信息。问题是,第一次访问仪表板并尝试单击按钮需要多次单击才能检索表单。我在仪表板中有几个使用这种技术的小部件(准确地说是3个),它恰好在第3个将返回表单之前需要2次点击。这可能是由于不同小部件中的按钮实例造成的吗?我这么认为,结果为每个按钮创建了不同的类,具有相同的ajax代码。然而,问题仍然存在。这是一个非常烦人的错误,我无法弄清楚并且一直试图在这个1个bug上进行4天。下面是我的ajax代码:

  

$(".view_all").click(function(){ var form_id = $(this).attr("id"); $.ajax({ type: "GET", url: "form.php", data: "fid="+form_id, beforeSend: function(){ $("#loading").show(); }, success: function(msg){ $("#pop_container").html(msg); $("#pop_container").dialog({ autoOpen: false, height: 750, width: 950, modal: true, closeOnEscape: false }); $("#pop_container").dialog("open"); $("#loading").hide();
} }); return false; });

我对代码格式不正确表示歉意。我尝试了但它没有用。

无论如何,任何有关这方面的帮助都会非常有帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

正如我之前所说,一个现实的例子会有所帮助,但我仍然看看这个代码,一切似乎都很好,假设你是ajax调用总是返回它应该返回的内容(你用firebug或某些东西验证了吗? )。你应该把这段代码放在dom ready函数中:

                $("#pop_container").dialog({ 
                    autoOpen: false, 
                    height: 750, 
                    width: 950, 
                    modal: true, 
                    closeOnEscape: false 
                }); 

而不是在回调中设置它。所以你只需要调用$('#pop_container')。dialog('open');在回调中。现在,如果这还不够,并且它不够,你可以手动触发jQuery中的点击($('。view_all')。触发器('click'))但这不是真的“干净”。不知道这是否有帮助,但如果不完全了解最新情况,我就无法做更多事情:P