2010-11-01 14 views
6

Chcę utworzyć niestandardowy element z tekstem pobranym z elementu "przeciągany" przy użyciu funkcji pomocnika. Mój problem polega na tym, że ui jest niezdefiniowane, więc nie wiem, jak zdobyć źródło oporu.Jak dostosować helper za pomocą przeciągania w jQuery-UI

$('.draggable').draggable({ 
    helper: function(event, ui) { 
     var foo = $('<span style="white-space:nowrap;">DRAG TEST</span>'); 
     return foo; 
    } 
}); 

Odpowiedz

16

helper funkcja starasz is invoked the following way:

$(o.helper.apply(this.element[0], [event])) 

Oznacza to, że this odnosi się do .draggable chcesz wewnątrz tej funkcji, na przykład:

$('.draggable').draggable({ 
    helper: function(event) { 
    return $('<span style="white-space:nowrap;"/>') 
      .text($(this).text() + " helper"); 
    } 
}); 

You can test it out here.

+0

Dzięki! Pracował jak urok. Może po prostu usunąć zdarzenie i ui w wywołaniach funkcji, lub są one używane w jakiś sposób? – Cros

+1

@Cros - istnieje "zdarzenie", ale tak "ui" jest nieistotne, zawsze "niezdefiniowane", usuniemy je w odpowiedzi. –

+0

@NickCraver Cześć Nick, twoja odpowiedź działa świetnie. Próbuję zwrócić oryginalny element (ale zmniejszyłem). return $ (this) .clone() działa dobrze, ale zwracanie tylko $ (this) nie przesuwa elementu, zastanawiałem się, czy mógłbyś wiedzieć dlaczego? – JonWells

Powiązane problemy