jQuery: как получить самый внутренний элемент dom, над которым я нахожусь, глобально для всего тела документа? - PullRequest
2 голосов
/ 17 апреля 2011

Я бы хотел обнаружить движения мыши по всему телу документа и точно сказать, над какой частью DOM я нахожу указатель мыши.Под «какой частью» я подразумеваю самый внутренний элемент DOM, над которым в данный момент находится мышь.

Я мог бы связать указатель мыши со всем телом документа, но тогда $ (this) даст мне $ (body)не самый внутренний элемент.Или я мог бы рекурсивно перебирать всю модель DOM и связывать указатель мыши с каждым элементом, но это было бы серьезным излишним ИМО.

Есть ли простой способ добиться этого?

Ответы [ 3 ]

4 голосов
/ 17 апреля 2011

jQuery's event.target должен добиться цели:

$("body").click(function(event) {
  console.log($(event.target));
});
0 голосов
/ 17 апреля 2011

По предложению Джейси я использовал следующий код:

var currentNode = null;
$('body').mousemove(function(event) {
  if ($(event.target) !== currentNode) {
    currentNode = $(event.target);
    console.log(currentNode);
  }
});
0 голосов
/ 17 апреля 2011

:) подумайте обо всех элементах, как:

<div>this is div</div>
<span>this is span</span>
<p>This is p</p>
<a>this a</a>
<ul><li>this is ul li</li></ul>
<ol><li>This is ol li</li></ol>
<img src="" />
<textarea id="text"></textarea>

Текстовое поле показывает только результат.

jQuery("div,span,p,a,ul,ol,img").hover(function(){
    jQuery("#text").append(jQuery(this).html() + 
                           "<br />");
},function(){
}
);
...