在Dojo中单击链接打开一个弹出窗口或工具提示
Open a Popup or tooltip onclick of link in Dojo
我在网上到处跟随教程来弄清楚这一点,因为我是dojo新手,我知道jquery但dojo,没有办法
我正在跟踪stackoverflow本身的链接,但无法找出代码:
http://stackoverflow.com/questions/18476084/dojo-and-javascript-lightweight-tooltip-in-onclick-on-anchor-tab
我试着写一些代码,但它显示为
showDialog是未定义的。
同时,要求是:
点击链接,打开链接后面的对话框或工具提示,定位在它附近。
有一个链接在弹出窗口或工具提示关闭它,所以它实际上应该关闭提示或弹出窗口,
这是我到目前为止的尝试:
<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>
你的代码中有几个错误:
您声明了一个声明式样式的小部件和一个以编程方式创建的具有相同名称的小部件。删除代码的以下部分:
<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();
};
});
你错误地使用了对话框的setter。在使用dijit/Dialog::set()
函数时,应该提供两个参数,一个用于定义要设置的属性,另一个用于定义要使用的值,因此在本例中是要显示的标题和内容。
elliotDialog.set("title", "My title");
elliotDialog.set("content", "My content");
如果您完成了所有这些操作,那么您的代码应该可以正常工作,如下所示:http://jsfiddle.net/4jnHk/
相关文章:
- 用javascript将数据从一个窗口传递到另一个窗口
- 创建一个方法,通过一个窗口进行迭代并获取Titanium中的所有控件
- 从另一个窗口访问document.getElementById
- notify.js没有'如果另一个窗口被聚焦,则不显示通知
- 使用YUI或ExtJS将隐藏的DIV变成一个窗口
- 从另一个窗口对链接触发单击事件
- Atom Electron:在另一个窗口中渲染画布
- 使用Javascript单击选择按钮时,在另一个窗口上显示图像
- Javascript/Jquery如何在另一个窗口中检测点击
- 用JavaScript打开一个新窗口,然后关闭前一个窗口
- 使用Javascript/jQuery在当前窗口后面打开一个窗口
- 从另一个窗口调用 iframe
- 在系统焦点使用Electron的地方打开一个窗口
- 将图像数组从一个窗口传递到另一个窗口,并在javascript的新窗口中显示图像
- 一键在一个窗口中打开两个不同的链接图像
- IE10在打开窗口并再次打开另一个窗口时不起作用
- 你怎么知道javascript是否无法打开一个窗口
- 使用 javascript 打开一个窗口,并从外部源加载 HTML 内容
- 仅在一个窗口中播放声音,该窗口使用javascript(可能是jquery)处于活动状态(在一个网站内)
- 用钛将一个窗口移动到另一个窗口