0

我有这个jsfiddle,右上角有三个按钮。

一直向右的两个按钮“底图”和“图例”的内容按预期向左打开,因此它们不会超出浏览器窗口。左侧按钮的内容“地图叠加层”会向右打开,因为它有这样做的空间。

是否可以更改这些 DropDownButtons 的内容,以便默认情况下它们都将自己定位为内容的右侧与按钮的右侧对齐?

IE,我希望左按钮(“地图叠加”)的打开内容与其他按钮的打开内容相同。

4

1 回答 1

0

修复了具有所需功能的 jsfiddle。

我已经通过为DropDownButtondojo.connect的事件添加一个来解决这个问题。onMouseDown我根据 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";
});
于 2012-07-27T15:41:18.637 回答