2012-07-27 69 views
0

我有這個jsfiddle我在右上角有三個按鈕。定位dojo dijit.form.DropDownButton的內容?

右側的兩個按鈕(「Basemaps」和「Legend」)的內容按照預期朝向左側打開,因此它們不會從瀏覽器窗口中移出。左側按鈕「地圖疊加層」的內容朝向右側開放,因爲有空間可以這樣做。

是否可以更改這些DropDownButtons的內容,以便默認情況下它們都將自己的位置右側與按鈕的右側對齊?我想讓打開的左側按鈕(「地圖疊加層」)的內容以與其他按鈕的打開內容相同的方式定位其自身。

回答

0

Fixed jsfiddle with desired functionality.

我已經加入了dojo.connectonMouseDown事件DropDownButton的固定這一點。我從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"; 
});