2

如何通过鼠标单击获取 DOM 或 jQuery 元素?例如我有下一个代码:

$("*").mouseup(
 function() 
 {
    var clickedElement = ???????????????
 }
);

那么,如何初始化“clickedElement”变量?谢谢你。

4

3 回答 3

9

在事件处理程序中,this指的是引发事件的 DOM 元素。

$("*").mouseup(function() {
    var clickedElement = this;
});

要获取 jQuery 元素,只需传递thisjQuery.

但是:使用事件委托会好得多,而不是将事件处理程序绑定到每个元素。您可以通过以下方式获取事件的起源:event.target

$(document).mouseup(function(event) {
    var clickedElement = event.target;
});

还有一点需要注意的是:这不一定会给您单击的元素,而是释放鼠标按钮的元素,它可能与按下按钮的元素不同。您可能希望绑定到click事件。


我还建议阅读涵盖这些基础知识的 jQuery 教程

于 2011-03-30T12:39:19.480 回答
4

如果您不想将事件附加到每个 DOM 元素(我不推荐)...

$(document).mouseup(function(event) {
   var clickedElement = event.target;
});

js小提琴

在这里,任何元素的事件都会一直冒泡到document,将在其中处理它,并且启动事件的原始元素将在event.target

于 2011-03-30T12:40:43.030 回答
2

使用这个。IE:

$("*").mouseup(  function()   {     
    var clickedElement = this; //HTML DOM Element
    var $clickedElement = $(this); //jQuery Wrapped HTML DOM Element
} ); 
于 2011-03-30T12:39:33.160 回答