2011-12-22 58 views
0

一個div追加到另一個DIV只有一次我有一個可拖動的元素,當其拖放到目標,它增加了一個刪除按鈕:上投擲的下降

$("#committed").droppable({ 
       hoverClass: 'drophover', 
       drop: function(event, ui) 
       { 

        $(function() 
        { 
         var done; 

         if(done) return; 
         done = true; 

         $(ui.draggable).append('<button class="delBtn" type="reset">X</button>'); 

         $(ui.draggable).draggable("option", "disabled", true); 

         $("#sortable").sortable(); 
         $("#sortable").disableSelection();        

        }); 

       } 

一旦它被丟棄,則它就有排序。問題是,每次對元素進行排序時,都會再次添加刪除按鈕。由於有多個元素被拖放,然後排序,所以.length>?不起作用。

我基本上需要

If (this.delBtn exists) 

回答

1

我更新了另一個的jsfiddle項目,那裏只有按鈕不會在拖動對象上存在卻把按鈕添加:jsfiddle example

這裏的竅門是:

if ($(ui.draggable).find('button.delBtn').length == 0) { 
     $(ui.draggable).append('<button class="delBtn" type="reset">X</button>'); 
} 

它檢查拖動的項目是否包含具有類delBtn的按鈕。如果不是,則添加按鈕。

+0

if(!$('button.delBtn',ui.draggable).length)也起作用 – BobFlemming 2011-12-22 14:07:57

0

豈不像這種你出去嗎?

if($('button.delBtn').length > 0) 
{ 
    // The delete button exists... 
} 
+0

但是可以存在多個.delBtn元素,因此在第一個元素被刪除後這不起作用。 – BobFlemming 2011-12-22 12:46:23

+0

但它回答了你問題的最後部分:'If(This.delBtn exists)'? – BenM 2011-12-22 12:47:17

+0

嗯..但除非我失去了一些東西,我需要(這個button.delBtn).length> 0,不只是泛型選擇器。 – BobFlemming 2011-12-22 12:51:25