2013-01-03 205 views
2

我想用一個函數生成一個jQuery UI對話框。該函數由onClick事件觸發並正在執行,但由於某種原因,該對話框將不會顯示。我相信這很簡單。jQueryUI對話框不顯示

如果可能,我寧願以這種方式創建對話框,因爲從單獨的html頁面加載對話框導致chrome上出現相同的原始問題。該代碼是瀏覽器擴展的一部分,可以脫機使用,因此這種方式可以在不受原始限制的情況下使用。

我已經創建了一個類似的工作對話框,它在標籤之間添加了一個參數。我已經嘗試過與目前的一個,它沒有奏效。

我在主頁面添加了最新的jQuery ui和jQuery庫。

我是新來的JavaScript和jQuery,但如果任何人都可以提供一些幫助,我將不勝感激。

感謝,

function imageSelection() { 

var NewDialog = $('<div id="imageSelectionDialog"> ' + 

    "<ol id= \"selectable\">" + 
     "<li class=\"ui-state-default\"><img src=\"images/stock/image1.jpg\"/></li>" + 
     "<li class=\"ui-state-default\"><img src=\"images/stock/image2.jpg\"/></li>" + 
     "<li class=\"ui-state-default\"><img src=\"images/stock/image3.jpg\"/></li>" + 
     "<li class=\"ui-state-default\"><img src=\"images/stock/image4.jpg\"/></li>" + 
     "<li class=\"ui-state-default\"><img src=\"images/stock/image5.jpg\"/></li>" + 
     "<li class=\"ui-state-default\"><img src=\"images/stock/image6.jpg\"/></li>" + 
     "<li class=\"ui-state-default\"><img src=\"images/stock/image7.jpg\"/></li>" + 
     "<li class=\"ui-state-default\"><img src=\"images/stock/image8.jpg\"/></li>" + 
    "</ol>" + 

    "<form id=\"pieceSelection\">" + 
     "<div id=\"imageInput\">" + 
      "<input type=\"text\" id=\"image\" value=\"images/stock/walkin.jpg\"" + 
       "title=\"Select an image above or Paste a URL e.g http://server.com/path/to/image.jpg\"/>" + 
     "</div>" + 

     "<div id=\"radio\">" + 
      "<input type=\"radio\" id=\"radio1\" name=\"radio\" checked/>" + 
      "<label for=\"radio2\">x3</label>" + 
      "<input type=\"radio\" id=\"radio2\" name=\"radio\"/>" + 
      "<label for=\"radio3\">x4</label>" + 
      "<input type=\"radio\" id=\"radio3\" name=\"radio\"/>" + 
      "<label for=\"radio4\">x5</label>" + 
      "<input type=\"radio\" id=\"radio4\" name=\"radio\"/>" + 
      "<label for=\"radio5\">x6</label>" + 7 
      "<input type=\"radio\" id=\"radio5\" name=\"radio\"/>" + 
      "<label for=\"radio6\">x7</label>" + 
      "<input type=\"radio\" id=\"radio6\" name=\"radio\"/>" + 
      "<label for=\"radio7\">x8</label>" + 
      "<input type=\"radio\" id=\"radio7\" name=\"radio\"/>" + 
      "<label for=\"radio8\">x9</label>" + 
     "</div>" + 
    "</form>" + 
'</div> '); 


NewDialog.dialog({ 
    autoOpen: false, 
    modal: true, 
    height: 500, 
    width: 500, 
    title: 'Choose an image', 
    buttons: { 
     "Ok": function() { 
      $(this).dialog("close"); 
     } 
    } 
}); 

return false; 

}​ 

回答

2

您的字符串中似乎有一個意外的7,這使得這個級聯無效,導致Uncaught SyntaxError: Unexpected string

更改此:

"<label for=\"radio5\">x6</label>" + 7 
"<input type=\"radio\" id=\"radio5\" name=\"radio\"/>" + 

要麼這樣:

"<label for=\"radio5\">x6</label>" + 
"<input type=\"radio\" id=\"radio5\" name=\"radio\"/>" + 

或本:

"<label for=\"radio5\">x6</label>" + 7 + 
"<input type=\"radio\" id=\"radio5\" name=\"radio\"/>" + 

除了需要設置autoOpentrue如果希望對話框立即可見。

DEMO - 取出7,並設置autoOpen爲true

+0

謝謝弗朗索瓦,這是autoOpen屬性。在編輯SO的代碼時,這7個是偶然發生的。 –

0

你似乎並不被追加HTML到DOM,使其工作.. '' 之前

追加到身體你把它分配給一個Do = ialog,它應該工作..

var html = '<div id="imageSelectionDialog"> ' + 
      //other html ; 

$('body').append(html); 

var NewDialog = $("#imageSelectionDialog"); 

// Code to Initialize the dialog 
+0

弗朗索瓦的回答解決了我的問題,但感謝你的幫助都是一樣的。 –