我對jQuery很陌生,試圖在我的PHP應用程序中運行一個非常簡單的jQueryUI對話框。在Firebug控制檯我得到的錯誤:jQueryUI - 未捕獲的異常:無法調用方法
uncaught exception: cannot call methods on dialog prior to initialization; attempted to call method 'open'
這裏是我的代碼:
$(function() {
$("#dialog").dialog({
autoOpen: false,
show: "blind",
hide: "explode"
});
$("#opener").live('click',function() {
$("#dialog").dialog("open");
return false;
});
});
我做了一些谷歌搜索上的錯誤並沒有太大的止跌回升,除了jquery.ui.js
與生成錯誤:
if (isMethodCall) {
this.each(function() {
var instance = $.data(this, name);
if (!instance) {
throw "cannot call methods on " + name + " prior to initialization; " +
"attempted to call method '" + options + "'";
}
...
任何想法?我很感激這個錯誤信息的任何幫助,以及如何解決它。
更新:我嘗試註釋掉顯示/隱藏選項,但這並沒有對我的問題有任何影響。以下是HTML:
<div class="demo">
<div id="dialog" title="Basic dialog">
<p>This is an animated dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p>
</div>
<button id="opener">Open Dialog</button>
</div><!-- End demo -->
此HTML包含在PHP文件中,該文件包含在另一個PHP文件中。
看起來像jQuery的UI認爲你沒有初始化之前調用它的open方法對話框。我會刪除用於展示和隱藏的某些奇特選項,以便縮小這些問題。還要確保你的標記中有一個id爲'dialog'的元素。如果這沒有幫助,你將不得不提供你正在使用的實際標記,所以我們有機會進行調試。 – Thomas 2010-09-30 05:03:21
嗨托馬斯,我刪除了顯示/隱藏選項(沒有效果),並粘貼了我的HTML上面,謝謝 – themerlinproject 2010-09-30 05:09:21
我認爲這與我的最後一句話有關「HTML包含在PHP文件中,這是包含在另一個PHP文件」。我已經解決了jQuery和PHP包含的問題,因此我開始使用live()爲將來的Ajax內容(如div)提供函數。我不知道爲什麼它不在這裏工作。 – themerlinproject 2010-09-30 05:12:49