我想向Dojo Select中的項添加工具提示。此代碼在商店包含在腳本中時添加工具提示。在Dojo Select中添加工具提示
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
@import "https://ajax.googleapis.com/ajax/libs/dojo/1.9.1/dijit/themes/claro/claro.css";
@import "https://ajax.googleapis.com/ajax/libs/dojo/1.9.1/dojo/resources/dojo.css";
</style>
<script src="https://ajax.googleapis.com/ajax/libs/dojo/1.9.0/dojo/dojo.js" type="text/javascript" data-dojo-config="async: true"></script>
<script>
require(["dijit/form/Select",
"dojo/store/Memory",
"dojo/domReady!"
], function (Select, Memory) {
var store = new Memory({
data: [
{ id: "foo", label: '<div tooltip="Foo Tooltip" onmouseover="showTooltip(this)" onmouseout="hideTooltip(this)">FOO</div>' },
{ id: "bar", label: '<div tooltip="Bar Tooltip" onmouseover="showTooltip(this)" onmouseout="hideTooltip(this)">Bar</div>' }
]
});
var s = new Select({
store: store,
labelType: 'html',
labelAttr: 'label'
}, "target");
s.startup();
});
function showTooltip(el) {
dijit.showTooltip(el.getAttribute('tooltip'), el);
}
function hideTooltip(el) {
dijit.hideTooltip(el);
}
</script>
</head>
<body class="claro">
<div id="target"></div>
</body>
</html>
但是,在我的應用程序中,我的商店位於單獨的模塊(stores.js)中。
define([], function() {
return {
priority: [
{ id: "foo", label: '<div tooltip="Foo Tooltip" onmouseover="showTooltip(this)" onmouseout="hideTooltip(this)">FOO</div>' },
{ id: "bar", label: '<div tooltip="Bar Tooltip" onmouseover="showTooltip(this)" onmouseout="hideTooltip(this)">Bar</div>' }
]
};
};
我設置的要求(「模塊/店」),並把別名功能(存儲)模塊,並使用此代碼創建我的選擇。
new Select({
id: "cboPriority",
store: new Memory({ data: Stores.priority }),
labelType: 'html',
labelAttr: 'label'
}, "divPriority").startup();
我試着在模塊中添加showTooltip和hideTooltip功能,但我仍然得到控制檯錯誤「的ReferenceError:未定義showTooltip」。設置腳本和模塊的正確方法是什麼,以便我可以顯示工具提示?
最初,我在商店模塊中設置了這樣的項目:'{id:「foo」,label:「FOO」,tip:「Foo Tooltip」}'並嘗試使用Tooltip,如示例中所示@Eric使用,但我無法弄清楚使用正確的CSS選擇器。 – kenbuja