2011-09-22 37 views
0

我正在使用jQuery仪表板插件来显示MySql表信息。我在这些小部件中为每个mysql结果显示一个表单。该按钮执行ajax调用以传递表单id,然后检索样式表单信息以显示在jQuery对话框中。问题是,第一次访问仪表板并尝试点击按钮需要多次点击才能检索表单。仪表板中有几个小部件使用这种技术(确切地说,3),并且在第三次返回表单前恰好需要2次点击。这可能是由于不同小部件中的按钮实例?我认为是这样,结果为每个按钮使用相同的ajax代码做了不同的类。但是,问题依然存在。这是一个非常烦人的错误,我无法弄清楚,并且一直试图在这1个错误中单独进行4天。下面是我的Ajax代码:jQuery仪表板中的小部件中的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; });

我不被格式化很好的代码道歉。我试过了,但没有奏效。

无论如何,任何对此的帮助将是非常有帮助的。谢谢!

+0

您是否有现场示例?可能是有用的。 – Bene

+0

@Bene不幸的是,没有。一切都是在内部子域上开发的。 –

回答

0

正如我之前所说,一个活的例子会有所帮助,但我仍然看看这段代码,一切似乎都很好,假设你是ajax调用总是返回它应该返回的东西(你是用萤火虫还是别的什么来验证的?)。你应该把这段代码放在dom ready函数中:

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

而不是在回调中设置它。所以你只需要调用$('#pop_container')。dialog('open');在回调中。现在,如果这还不够,并且还不够,可以手动触发jQuery中的单击($('。view_all')。trigger('click')),但这不是“干净”的。不知道这是否有帮助,但如果不完全了解发生了什么,我不能做更多:P

相关问题