2012-06-02 11 views
10

Kurze Frage hier Jungs arbeiten, kann ich nicht diese.on() und wechseln zusammen

$('#wrap').on('toggle', '#image', function(){ 
    <!-- Do stuff --> 
    }); 

in der Lage sein scheinen, um einen Knebel im Inneren haben? Irgendwelche Ideen? Ich habe versucht zu googeln, aber ohne Glück.

dies ist der Code, den ich mit .on zu bekommen versuche zu arbeiten, wie sie derzeit ist es nicht die Änderungen an alle des Elements Sohn die Seite (die #image und #brick haben) gelten

$("#result_options").toggle(function() { 
     var image_width = $('#image').width()/2; 
     var brick_width = $('#brick').width()/2; 
     $("#image").css("width",image_width); 
     $("#image").css("padding","4px"); 
     $("#brick").css("width",brick_width); 
    },function(){ 
     $("#image").css("width","300"); 
     $("#image").css("padding","8px"); 
     $("#brick").css("width","314"); 
     $(this).html("Smaller Results"); 
    }); 
}); 
+1

möglich Duplikat von [ JQuery.live mit Toggle-Ereignis verwenden] (http://stackoverflow.com/questions/2172614/using-jquery-live-with-toggle-event) – j08691

Antwort

24

Das Problem, dem Sie gegenüberstehen, ist, dass es kein toggle Ereignis gibt; toggle() ist eine jQuery-Methode. Zur Implementierung eines toggle(), mit on() ich glaube, Sie bräuchten eine click Ereignis zu verwenden, und dann eine if Aussage zu prüfen, ob bereits etwas ist diese Option aktiviert ist, oder getoggelt-off/

-nicht umgeschaltet
$('#wrap').on('click', '#image', function(){ 
    if (!$(this).attr('data-toggled') || $(this).attr('data-toggled') == 'off'){ 
     /* currently it's not been toggled, or it's been toggled to the 'off' state, 
      so now toggle to the 'on' state: */ 
      $(this).attr('data-toggled','on'); 
      // and do something... 
    } 
    else if ($(this).attr('data-toggled') == 'on'){ 
     /* currently it has been toggled, and toggled to the 'on' state, 
      so now turn off: */ 
      $(this).attr('data-toggled','off'); 
      // and do, or undo, something... 
    } 
}); 
+0

@maryisdead: thanks! Ich hatte das nicht bemerkt (oder ich hatte angenommen, dass es als benutzerdefiniertes benutzerdefiniertes Ereignis verwendet wurde). =) –

+1

Gern geschehen! Vielen Dank für Ihre Antwort! :-) – maryisdead