trigger in jQuery

Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
andras
Mesaje: 430

trigger in jQuery

Salut,
Ceva nu inteleg: in instructiunea:

Cod: Selectaţi tot

    drop: function( event, ui ) {       
	$('tbody#sortThis').trigger('sortupdate');
	$('tbody#sortThis').trigger('sortstop',event,ui);
	//TODO: aici ar trebui apelata functia de salvare in baza de date
   }
Doar se definesc triggerele sau ele se si declanseaza? Intreb asta pentru ca mai departe, in instructiunea:

Cod: Selectaţi tot

$('tbody#sortthis').sortable();  
$('tbody#sortthis').on('sortstop',event,ui,
        function(event, ui) {
 var f= ui.item[0].cells[11].innerHTML; 
alert(f);
}
);
nu se executa preluarea in variabila f (deci nu functioneaza). Aceasta instructiune este parte a unei functii de salvare in BD, care functioneaza in evenimentul stop:.
Ceea ce vreau de fapt este ca la drop: sa se execute si functia din stop:. In prezent ele functioneaza, dar separat prima data trebuie sa fac drop: (sa trag inregistrarea) apoi trebuie sa sortez in tabela destinatie ca sa se execute si stop: si sa se salveze in BD. De aceea incerc sa introduc triggere.
Nu stiu daca am fost suficient de clar.Multumesc.

MarPlo Mesaje: 4343
Salut
Din ce am inteles din documentatia de la jQuery despre trigger (pagina: http://api.jquery.com/trigger/ ), trigger() se foloseste pentru a declansa executia unui eveniment (click, mouseover, sau vreun custom-event).
In codul tau e posbil ca problema sa fie de la argumentele adaugate la trigger(), nu se adauga ca la on() (vezi explicatiile din documentaatie).
Poate trebuie asa:

Cod: Selectaţi tot

$('tbody#sortThis').trigger('sortstop');
Sau asa:

Cod: Selectaţi tot

$('tbody#sortThis').trigger('sortstop', [event, ui]);
Exemplu functional:

Cod: Selectaţi tot

<div id="dv1">When click on the button will trigger the 'custom' event. It displays an alert with the ID of this Div and a property of an object passed as arguments.</div>
<button id="btn">Click</button>
<script>
// register a custom event
$('#dv1').on('custom', function(event, obj, prop) {
  alert('ID:'+ event.target.id +'\n'+ obj[prop]);
});
$('#btn').on('click', function() {
  var obj = {p1: 1, p2: 'prop2'};

  // trigger the "custom" event, passing 2 additional arguments into an array [obj, 'p2']
  $('#dv1').trigger('custom', [obj, 'p2']);
});
</script>
Demo:
When click on the button will trigger the 'custom' event. It displays an alert with the ID of this Div and a property of an object passed as arguments.

Subiecte similare