簡體   English   中英

相互綁定多個jquery ui元素

[英]binding several jquery ui elements to each other

是否可以設置一組多個jquery ui元素來全部響應與該組中任何一個的交互?

編輯:例如,我有幾個版本的非常相似的圖像,我使用jquery.tabs()將它們分組到不同的頁面中。 圖像都可以使用各種jQuery UI物件(可拖動,可調整大小等)進行操作。 除了圖像的路徑以外,我所有的選項卡都應該看起來相同。 因此,當我在一個選項卡中拖動圖像或調整圖像大小時,我希望其他選項卡中的相應圖像也能執行相同的操作。

例如使用$('#element1').add($('#element2).draggable();

但是如果要在拖動element2時拖動element1:由於在拖動過程中,該元素獲得了一類ui-draggable-dragging use:

if($('#element1')).hasClass('ui-draggable-dragging')){
  //drag #element2
}

您可以通過使用UI對象提供的事件draggable()例如drag for draggable()來完成您想做的事情:

示例: http //jsfiddle.net/elclanrs/WcNNb/2/

$('#drag1').draggable();
$('#drag2').draggable({
    drag: function(){
        $('#drag1').offset({
            top: $(this).offset().top,
            left: $(this).offset().left - $('#drag1').width() - 20
        });
    }
});

讓我們假設相似的元素具有相同的類名,例如`class =“ elementType_n”。

然后,您可以選擇所有相似的元素,然后按一個或依次對其進行操作,如下所示:

javascript:

$selection_n = $(".elementType_n");
$selection_n.on('eventType', function(){
    //Here, depending on the action, either
    //* act on $selection_n all together, eg. $selection_n.methodA(...)..methodB(...);
    // or
    //* act on $(this) with eg. $(this).methodA(...)..methodB(...); then use $(this)'s resulting properties to act on the rest of the selection, eg. $selection_n.not($(this).methodA(...)..methodB(...);
});

對於可拖動對象,毫無意義地將隱藏元素拖動到可見的拖動元素上。 誰會看到他們移動? 而是建立一個drag.oncomplete處理程序,以設置不可見對象的偏移量以匹配被拖動元素的偏移量。 最終結果-相同。 效率-更高。 (可拖放是另一回事)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM