2010-11-18 40 views
0

我想通過使用jQuery將元素「事件」傳遞給JavaScript函數。使用jQuery傳遞元素事件?

INLINE:
這很容易,直接做(內聯)。

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


使用jQuery:
但它使用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> 

提前感謝您!

回答

2

從什麼了很多其他人都表現出對於將數據傳遞到事件函數繼,對於這個特定的方法,你可以通過這種方式通過一個完整的對象映射。

還銘記裸jQuery的正常化事件對象收到它之前,所以這是一個有點不同,請參見: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

欣賞它......謝謝! – 2010-11-18 20:52:05

1

你沒有,這已經是第agument,像這樣:

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

如果你想傳遞一個標題,然後可以使用匿名函數,像這樣:

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

個人而言,我會使用一個數據屬性,像這樣:

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

然後訪問它是這樣的:

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

喜歡它,謝謝! – 2010-11-18 20:01:27

1

您可以發送匿名函數executs ToggleMinimize()

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

,或者您可以ToggleMinimize返回的函數,這樣你就可以通過Hello World進去。

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

你們真棒!我喜歡這個網站! – 2010-11-18 19:54:57

0

你可以這樣來做:

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