2014-07-18 71 views
0

打開一個彈出或提示的onclick鏈接的我到處以下教程各地的網絡要弄清楚這是我新的道場,我知道的jQuery但道場,沒辦法在道場

我下面從計算器鏈接本身,而是無法tofigure出代碼:

http://stackoverflow.com/questions/18476084/dojo-and-javascript-lightweight-tooltip-in-onclick-on-anchor-tab 

我試着擰了一些代碼,但它是說作爲

的ShowDialog是不確定的..

而且,什麼是要求是:

  1. 點擊鏈接,只是鏈接後,打開的對話框或提示,在它附近positionsing。

  2. 具有彈出或關閉它提示裏面的鏈接,所以它實際上應該關閉toltip或彈出,

這裏是我的嘗試到現在:

<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojo/dojo.js"></script> 
<script> 
dojo.require("dijit.Dialog"); 
     dojo.addOnLoad(showDialog); 
     elliotDialog = new dijit.Dialog({ 
      title: "My Dialog", 
      content: "test content", 
      style: "width: 450px" 
     }); 
     showDialog = function(){ 
      // set the content of the dialog: 
      elliotDialog.set("title"); 
      elliotDialog.set("content"); 
      elliotDialog.show(); 
     }; 
</script> 

<a href="javascript:void(0);" onclick="showDialog();" class="moreLink">More pricing...</a></p> 
     <div dojoType="dijit.Dialog" id="elliotDialog" title="More Pricing Option"> 

     </div> 

回答

1

有代碼中出現幾處錯誤:

您聲明瞭聲明式風格的窗口小部件和以相同名稱編程創建的窗口小部件。刪除你的代碼的以下部分:

<div dojoType="dijit.Dialog" id="elliotDialog" title="More Pricing Option"> 

</div> 

您使用dojo.addOnLoad()錯誤。當你想等待模塊和DOM加載時,應該調用dojo.addOnLoad()函數。沒有理由在這裏調用showDialog()函數。
更糟糕的是,在您調用它的那一刻,showDialog()函數甚至不存在,因爲您稍後在代碼中聲明它。這就是爲什麼你得到了錯誤的原因:

Uncaught ReferenceError: showDialog is not defined 

希望發生的事情是,你換你的對話框創建代碼,一切都依賴於它,在dojo.addOnLoad()函數內部,例如:

dojo.addOnLoad(function() { 
    elliotDialog = new dijit.Dialog({ 
     title: "My Dialog", 
     content: "test content", 
     style: "width: 450px" 
    }); 
    showDialog = function(){ 
     // set the content of the dialog: 
     console.log(elliotDialog); 
     elliotDialog.set("title"); 
     elliotDialog.set("content"); 
     elliotDialog.show(); 
    }; 
}); 

您正在錯誤地使用對話框的設置者。當使用dijit/Dialog::set()函數時,您應該提供兩個參數,一個用於定義要設置的屬性,另一個用於您想要使用的值,因此在這種情況下需要顯示標題和內容。

例如:

elliotDialog.set("title", "My title"); 
elliotDialog.set("content", "My content"); 

如果你做過的一切,你的代碼應該工作得很好,因爲你可以在下面看到小提琴:http://jsfiddle.net/4jnHk/