我希望有人能够为相关的 jQuery/jqModal 新手指出调试此错误的正确方向。我将 html 片段加载到 div 中,然后使用 jqModal 将该 div 显示为模式对话框。问题是 div 已显示,但未显示我更新的 html。
我在 jquery 调用的响应中显示我的 jqModal 对话框,函数 foo 是从 onclick 事件调用的:
function foo(url)
{
$.ajax({
type: "GET",
url: url,
success: function(msg)
{
$('#ajaxmodal').html(msg);
$('#ajaxmodal').jqmShow();
}
});
}
ajaxmodal 是一个简单的 div。
最初我认为问题一定出在我传递给回调的 html 片段(msg)中,但我不认为就是这样,即使我注释掉 $( '#ajaxmodal').html(msg) 行或传递硬编码 html。我认为我已经正确配置了 jqModal,使用我们的 ajaxmodal div 的其他调用正常工作,我能够显示模式,根据服务器响应更新内容等。
当我尝试在 firebug 中调试时,在调用 .jqmShow() 后出现以下错误。我有时在其他地方看到过这个错误,当时页面似乎还没有加载,我承认我对此感到困惑,因为我们已经将 jqModal 选择器包装在 $(document).ready() 中调用,所以也许我有一个更大的问题,这个调用恰好触发?
在 jquery.jqModal.js 文件中,第 64 行:js err is $(':input:visible',h.w)[0] 在该行中未定义:
f=function(h){try{$(':input:visible',h.w)[0].focus();}catch(_){}}
当我在 Firefox 中单步执行此操作时,h.w[0] 似乎没问题,它引用了我们的“#ajaxmodal”div。
提前感谢您提供任何追踪此问题的建议?
最佳答案
如果您没有需要焦点的输入,您可以在 jqModal.js 中进行更改:
f=function(h){try{$(':input:visible',h.w)[0].focus();}catch(_){}},
至:
f=function(h){try{}catch(_){}},
无论如何,这就是我所做的;)
关于javascript - jqModal/JQuery 问题,div 未更新新内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1348844/