2010-11-18 8 views
0

J'essaie de passer les éléments "événement" dans un clic de fonction JavaScript en utilisant jQuery.Passer l'événement elements en utilisant jQuery?

INLINE:
C'est facile lorsque vous faites directement (en ligne).

<a href="#" onclick="ToggleMinimize('Hello World', event)">Click Me</a> 


UTILISATION JQUERY:
Mais comment voulez-vous le faire en utilisant jQuery?

<script type="text/javascript"> 
<!-- 
    function ToggleMinimize(title, e) 
    { 
     // ...various execution code would be here ... // 
    } 

    jQuery(window).load(function() { 

     // How do I "get at" the "event" object for the element & pass it into the function definition? 
     jQuery(".chatDialog-toggle-button").bind('click', ToggleMinimize); 
    }) 
--> 
</script> 

En vous remerciant d'avance!

Répondre

2

À la suite de ce que beaucoup d'autres gars ont montré sur les données de passage à une fonction d'événement, il existe une méthode spécifique pour cela, vous peut passer une carte d'objets complète de cette façon par liaison.

Aussi nu à l'esprit que jQuery normalise l'objet événement avant de recevoir, donc il est un peu différent, voir: http://api.jquery.com/category/events/event-object/

function ToggleMinimize(e) { 
    // ...various execution code would be here ... // 
    // e.data contains the data object map 
    // e.data.msg == "Hello World" 
} 

jQuery(window).load(function() {  
    jQuery(".chatDialog-toggle-button").bind('click', {'msg': "Hello World"}, ToggleMinimize); 
}); 
+0

Appréciez-le ... merci! –

1

Vous n'avez pas, il est déjà le premier argument passé, comme ceci:

function ToggleMinimize(e) { 
    // ...various execution code would be here ... // 
} 
jQuery(window).load(function() {  
    jQuery(".chatDialog-toggle-button").bind('click', ToggleMinimize); 
}); 

Si vous voulez aussi passer un titre, puis utilisez une fonction anonyme, comme ceci:

function ToggleMinimize(title, e) { 
    // ...various execution code would be here ... // 
} 
jQuery(window).load(function() {  
    jQuery(".chatDialog-toggle-button").click(function(e) { 
    ToggleMinimize("some title", e); 
    }); 
}); 

Personnellement, j'utiliser un attribut de données, comme ceci:

<a href="#" class="chatDialog-toggle-button" data-title"Hello World">Click Me</a> 

alors accéder comme ceci:

function ToggleMinimize(e) { 
    var title = jQuery(this).data("title"); 
} 
jQuery(window).load(function() {  
    jQuery(".chatDialog-toggle-button").click(ToggleMinimize); 
}); 
+0

Love it, Merci! –

1

Vous pouvez envoyer une fonction anonyme qui executs ToggleMinimize():

jQuery(window).load(function() { 
    jQuery(".chatDialog-toggle-button").bind('click', function(e) { 
      ToggleMinimize("Hello World", e); 
    }); 
}) 

ou vous pouvez ToggleMinimize retourner une fonction, afin que vous puissiez passer Hello World en elle .

function ToggleMinimize(title) { 
    return function(e){ alert(title); alert(e.target); } 
} 

jQuery(window).load(function() { 
    jQuery(".chatDialog-toggle-button").bind('click', ToggleMinimize("Hello World")); 
}) 
+0

Vous êtes géniaux! J'aime ce site! –

0

Vous pouvez le faire de cette façon:

$(document).ready(function() { 
    $('.chatDialog-toggle-button').bind('click', function(event) { 
     ToggleMinimize(event); 
    }); 
});