Select 如何加上「;选择";是否以编程方式在dojo tooltipdialog内容中?
我想在dijit/TooltipDialog中显示Select 如何加上「;选择";是否以编程方式在dojo tooltipdialog内容中?,select,dojo,tooltip,Select,Dojo,Tooltip,我想在dijit/TooltipDialog中显示dojoselect。动态加载dojoselect的项。所以我想添加这个选择程序。TooltipDialog的内容可以是对象,但select需要保存一个domNode。代码是: <head> <script> require([ "dojo/parser", "dijit/form/Select", "dijit/Tooltip
dojoselect
。动态加载dojoselect
的项。所以我想添加这个选择
程序。TooltipDialog的内容可以是对象,但select需要保存一个domNode。代码是:
<head>
<script>
require([
"dojo/parser",
"dijit/form/Select",
"dijit/TooltipDialog",
"dojo/on",
"dojo/dom",
"dojo/_base/lang",
"dijit/popup",
"dojo/data/ObjectStore",
"dojo/store/Memory",
"dojo/domReady!"
], function(parser,Select,TooltipDialog,on,dom,lang,popup, ObjectStore, Memory){
parser.parse();
var t={mySel:null};
var store = new Memory({
data: [
{ id: "foo", label: "Foo" },
{ id: "bar", label: "Bar" }
]
});
var os = new ObjectStore({ objectStore: store });
t.mySel = new Select({
store: os
}, "ttt");
var myTooltipDialog = new TooltipDialog({
content: t,
onMouseLeave: function(){
popup.close(myTooltipDialog);
}
});
on(dom.byId("mmm"),"mouseover" ,lang.hitch(this,function(e){
popup.open({
popup: myTooltipDialog,
orient: ["above-centered","above","below"],
around:dom.byId('mmm')
});
t.mySel.startup();
}));
t.mySel.on("change", function(){
console.log("my value: ", this.get("value"))
})
})
</script>
</head>
<body class="claro">
<div id="ttt" > tttt</div><br>
<div id="mmm" > tttt</div><br>
</body>
要求([
“dojo/parser”,
“dijit/form/Select”,
“dijit/TooltipDialog”,
“dojo/on”,
“dojo/dom”,
“dojo/_base/lang”,
“dijit/popup”,
“dojo/data/ObjectStore”,
“dojo/store/Memory”,
“dojo/domReady!”
],函数(解析器、选择、工具提示对话框、打开、dom、lang、弹出、对象存储、内存){
parser.parse();
var t={mySel:null};
var存储=新内存({
数据:[
{id:“foo”,标签:“foo”},
{id:“bar”,标签:“bar”}
]
});
var os=新的ObjectStore({ObjectStore:store});
t、 mySel=新选择({
商店:os
}“ttt”);
var myTooltipDialog=新建TooltipDialog({
内容:t,,
onMouseLeave:function(){
弹出.关闭(myTooltipDialog);
}
});
on(dom.byId(“mmm”),“mouseover”,lang.hitch(this,function(e)){
打开({
弹出:myTooltipDialog,
方向:[“居中上方”、“上方”、“下方”],
around:dom.byId('mmm')
});
t、 mySel.startup();
}));
t、 mySel.on(“更改”,函数(){
log(“我的值:”,this.get(“值”))
})
})
tttt
tttt
您正在为工具提示内容而不是节点分配对象
因此,尝试做出以下改变:
var myTooltipDialog = new TooltipDialog({
content: t.mySel.domNode,
onMouseLeave: function() {
popup.close(myTooltipDialog);
}
}
你需要这样的smt吗?你能详细说明你的问题吗?你几乎答对了。只需将行
content:t,
更改为content:t.mySel,
。它应该会起作用。但是,当您尝试使用鼠标更改下拉列表中的选项时,会发生onMouseLeave事件,您将无法更改它。不过,你可以用键盘来更改选项。正如@TKambi所建议的那样,content:t.mySel
将创造奇迹。此外,如果您要将选择放置在工具提示中,则无需将其放置在DOM中即可创建它。非常感谢,它可以正常工作。如果我有更多的控件,例如:两个单选按钮和一个选择按钮。如何在tooltipdialog中添加它们以及如何在对话框中布局它们?此外,如何避免在选择更改时触发onMouseLeave事件?