【问题标题】:JQuery popup.....Uncaught TypeError: Object [object Object] has no method 'dialog'JQuery popup.....Uncaught TypeError: Object [object Object] has no method 'dialog'
【发布时间】:2013-05-18 23:02:28
【问题描述】:

我这几天一直在寻找解决这个问题的方法,并且在这个过程中长出了几根白发。我在 php 中回显一个 JQuery 弹出脚本:

  echo '<link rel="stylesheet" 
  href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>            
  <script src="functions.js"></script>
  <script type="text/javascript"> $(document).ready(function() { JQueryAlert("INSERT MESSAGE HERE!", 120); }); </script>';

问题是,有时它会触发,有时则不会。当它不触发时,它会在 Chromes JS 控制台中输出以下错误消息: Uncaught TypeError: Object [object Object] has no method 'dialog'

根据我从类似问题中可以看出的情况(Uncaught TypeError: Object #<Object> has no method 'dialog'),问题是一个 javascript 库的重复调用,但是,我已经通过将我的 javascript 库削减到最低限度来消除这种可能性(再少一点,它就赢了'无法运行)。知道是什么原因造成的吗?我将永远感谢任何可以提供解决方案的人!

【问题讨论】:

  • 我搜索了一下,发现一个类似的错误是由 jquery-UI 库在实际加载之前尝试使用 'dialog' 方法引起的。您是否在任何其他脚本之前加载库?
  • 您好 frrlod,谢谢您的回复。是的,据我所知,我在加载任何其他脚本之前加载库。

标签: php javascript


【解决方案1】:

这不是修复,但由于我看不到您的其余代码,因此这是一个潜在的解决方法,您基本上检查对话框功能是否存在,如果存在,我们创建警报,如果不存在,我们等待 100 毫秒,然后重试:

$(document).ready(function() { 
     function jqalert(msg) {
       if (typeof($.fn.dialog) != 'undefined') 
         JQueryAlert(msg, 120); 
       else 
         setTimeout(function() { jqalert(msg); }, 100);
     }
     jqalert("INSERT MESSAGE HERE!");
});

【讨论】:

  • 谢谢!如果我找不到修复程序,可能不得不使用它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多