2010-08-06 148 views
18

我想立即創建一個jQuery對話框。我使用的是這樣的:帶動態內容的jQuery對話框

var newDiv = $(document.createElement('div')); 
$(newDiv).html('hello there'); 
$(newDiv).dialog(); 

我再有這樣的HTML頭:

<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script> 
<script type="text/javascript" src="js/jquery-ui-1.8.1.custom.min.js"></script> 

當我嘗試運行JS在IE7我上$(newDiv)以下錯誤.dialog ();行: 對象不支持此屬性或方法。

任何人都知道發生了什麼事?

回答

56

你的代碼的工作,你可以測試它here,這意味着你可能有一個腳本包含問題,請確保您的文件是一個js文件夾頁面的旁邊,或者如果你打算他們是從網站的根,請改爲使用/js

consider using a CDN

你可以讓你的代碼位更有效的(我知道這只是一個測試),像這樣:

var newDiv = $(document.createElement('div')); 
newDiv.html('hello there'); 
newDiv.dialog(); 

這工作,因爲newDiv已經 jQuery的元素,沒有理由克隆對象每次...或短一點:

$('<div />').html('hello there').dialog(); 
+0

+1用於演示和速度速度的參考速度:) – Sarfraz 2010-08-06 12:52:23

+0

我已經有根包含jquery-1.4.2.min.js和jquery-ui-1.8.1.custom.min.js的js文件夾。我也有其他一些jQuery的東西(Tabs),它們工作正常。這不是說我的jQuery引用可以嗎? 代碼通過按鈕的onclick事件調用。 – DEH 2010-08-06 12:58:55

+0

我用以下替換了我的js引用: 這一切都開始工作。在我的js文件夾中是否需要一些額外的.js文件,即使它們不是通過腳本標記直接引用? – DEH 2010-08-06 13:04:54

16

下面是創建對話框和他們的消息動態的另一種方式:

 $('<div></div>').dialog({ 
     modal: true, 
     title: "Confirmation", 
     open: function() { 
      var markup = 'Hello World'; 
      $(this).html(markup); 
     }, 
     buttons: { 
      Ok: function() { 
      $(this).dialog("close"); 
      } 
     } 
     }); //end confirm dialog 

看到它在行動:http://jsfiddle.net/DYbwb/

+1

我在關閉函數後添加了一行以確保在關閉對話框時刪除了新創建的div,請參閱http://jsfiddle.net/DYbwb/597/ – KMX 2015-08-19 10:20:27

0

代碼是很好的,你需要的是jQuery和jQuery UI的

<script src="https://code.jquery.com/jquery-1.12.4.js"></script> 
 
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>