我有这个jsfiddle我在右上角有三个按钮。
最右边的两个按钮“ basemap ”和“图例”的内容按预期向左打开,因此它们不会超出浏览器窗口。左侧按钮的内容“ map 叠加层”向右打开,因为它有空间可以这样做。
是否可以更改这些 DropDownButton 的内容,以便默认情况下它们都将自己定位为内容的右侧与按钮的右侧对齐?
即,我希望左侧按钮(“ map 叠加层”)的打开内容以与其他按钮的打开内容相同的方式定位。
最佳答案
Fixed jsfiddle with desired functionality.
我已通过为 DropDownButton 的 onMouseDown
事件添加 dojo.connect
来修复此问题。我根据 DropDownButton 的 x 位置和宽度计算 ContentPane 的新 x 位置。然后我找到 ContentPane 的 DOM 节点的父节点并将其 left
样式参数设置为新的 x 位置。
dojo.connect(dijit.byId("mapOverlayDropdown"), 'onMouseDown', function() {
console.log("shown");
var button = dijit.byId("mapOverlayDropdown").domNode;
var gallery = dijit.byId("mapOverlayGallery").domNode.parentNode;
var buttonPos = dojo.position(button, true);
var galleryPos = dojo.position(gallery, true);
var newX = buttonPos.x + buttonPos.w - galleryPos.w;
gallery.style.left = newX.toString() + "px";
});
关于javascript - 定位一个dojo dijit.form.DropDownButton的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11689443/