一个函数绑定到多个对象的事件。其中一个对象会触发事件,然后jQuery就会介入。如何找出是谁在JavaScript函数中触发了事件?
我试着使用function [name](event){}和事件,但是我得到了"'data‘is null or not a object“。
下面是我现在的代码:
<script type="text/javascript">
$(document).ready(function() {
$('.opening').bind("click", function(event) {
//code to populate event.data since right now, the tags don't hold the info...they will eventually with an XHTML custom namespace
event.data.building = "Student Center";
event.data.room = "Pacific Ballroom A";
event.data.s_time = "9/15/2009 8:00";
event.data.e_time = "9/15/2009 10:00";
indicatePreferenceByClick(event);
});
function indicatePreferenceByClick(event) {
alert("I got clicked and all I got was this alert box.");
$("#left").load("../ReserveSpace/PreferenceByClick", { building: event.data.building, room: event.data.room, s_time: event.data.s_time, e_time: event.data.e_time});
};
</script>发布于 2017-01-30 19:11:44
使用target,您可以访问导致当前执行/事件的控件。如下所示:
$(event.target)发布于 2017-07-12 20:14:00
你可以在Jquery中使用this函数,它会给你注入了事件的项。
<script type="text/javascript">
$(document).ready(function() {
$('.opening').bind("click", function(event) {
console.log($(this));
});
});
</script>发布于 2020-01-01 19:22:38
event.currentTarget可能就是你要找的。
如果您询问的是event source,就像在Java中一样,其中target是引发事件的对象,source是事件处理程序附加到的对象,那么这可能是您要查找的内容:
在触发事件时传递给处理程序的event对象中,有两个对象,即target和currentTarget。
target是导致事件发生的对象firedcurrentTarget是处理程序附加到的对象
在您的代码中显示它的:
<script type="text/javascript">
$(document).ready(function() {
$('.opening').bind("click", function(event) {
// ...your code
indicatePreferenceByClick(event, event.currentTarget);
});
function indicatePreferenceByClick(event, eventSource) {
alert("I got the event source.");
console.log(eventSource);
// ...your code
}
});
</script>希望它能有所帮助:)
https://stackoverflow.com/questions/1375280
复制相似问题