2010-11-18 9 views
0

Ich versuche, die Elemente "Ereignis" in eine JavaScript-Funktion klicken Sie mit jQuery klicken.Übergeben des Elements Ereignis mit jQuery?

INLINE:
Dies ist einfach, wenn es direkt (inline) zu tun.

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


mit JQuery:
Aber, wie Sie es mit jQuery tun?

<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> 

Wir danken Ihnen im Voraus!

Antwort

2

Im Anschluss an, was viele der anderen Jungs haben in Bezug auf Übergabe von Daten an eine Event-Funktion gezeigt, gibt es eine spezielle Methode für diese, Sie kann auf diese Weise eine vollständige Objektzuordnung pro Bindung übergeben.

im Auge Auch nackten dass jQuery das Ereignisobjekt normalisieren, bevor Sie sie empfangen, so ist es ein wenig anders, siehe: 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

Schätzen Sie es ... Danke! –

1

Sie müssen nicht, es ist schon der erste agument, wie folgt aus:

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

Wenn Sie wollen auch einen Titel übergeben, dann verwenden Sie eine anonyme Funktion, wie folgt aus:

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); 
    }); 
}); 

persönlich würde ich ein Datenattribut wie folgt verwenden:

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

Dann es wie folgt zugreifen:

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

es Liebe, Dank! –

1

Sie können eine anonyme Funktion senden, die executs ToggleMinimize():

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

oder Sie können eine Funktion haben ToggleMinimize zurückkehren, so dass Sie Hello World hinein passieren kann .

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

Ihr seid großartig! Ich liebe diese Seite! –

0

Sie können es auf diese Weise tun:

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