2014-11-25 4 views
0

Как я могу получить довольно простую истину/ложь-заявление, если мышь находится над событием сНа = истина еще событие = ложьDetect, если мышь находится над элементом

var test = $("#main-nav").on("mouseenter", function (e) { 
    e.preventDefault(); 
    console.log(e.preventDefault()); 
    return true; 
}); 

if (test === true) { 
    //do something 
} else { 
    //something different 
} 
+1

ли вы тусклый t это постоянное обновление, когда пользователь перемещает мышь, или вам нужно знать один раз «Является ли мышь в данный момент над элементом' # main-nav' ». – Jamiec

+0

http://api.jquery.com/on/ использовать его как $ (document) .on ('mouseenter', '# main-nav', function() {...}); –

ответ

6

Если я правильно понимаю ваш вопрос :

if($("#main-nav").is(":hover")) { 
    //do something 
}else{ 
    //something different 
} 

В псевдокоде:

if the cursor is over #main-nav 
    do something 
if it's not 
    do something else 

Если вы хотите test всегда быть установлен:

var test = false; 
$("#main-nav").on("mouseenter", function(e){ 
    e.preventDefault(); 
    test = true; 
}).on("mouseleave", function(e){ 
    e.preventDefault(); 
    test = false; 
}); 

Таким образом,

if(test === true) { 
    //do something 
}else{ 
    //something different 
} 

воли всегда работу.

+0

Отличный ответ. Может быть, добавьте раздел в том случае, если OP захочет узнать, как они могли это сделать, используя свою оригинальную идею. – theonlygusti

+0

@theonlygusti Можете ли вы объяснить, что вы имеете в виду, «обходя это, используя свою оригинальную идею»? Благодарю. – Mooseman

+0

Как вы могли проверить, где находится мышь с помощью мыши и оставить? – theonlygusti

0

Вы можете иметь логическое значение (true/false) переменная, которая будет постоянно обновлять, делая это:

var hovering; 
$("#main-nav").mouseenter(function(){ 
    hovering = true; 
}); 
$("#main-nav").mouseleave(function(){ 
    hovering = false; 
}); 

Поэтому, когда он называется он расскажет вам, если мышь находится в пределах вашей DIV:

if (hovering){ 
    // mouse within div 
} else { 
    // mouse not within div 
} 
0

Если вам обязательно нужно в качестве переменной:

var test = false; 
$("#main-nav").on("mouseenter", function (e) { 
    test = true; 
}); 
$("#main-nav").on("mouseout", function (e) { 
    test = false; 
}); 

//.... 

if (test === true) { 
    //do something 
} else { 
    //something different 
} 
Смежные вопросы