我有一个奇怪的问题。我想.slideUp()点击后一些DIV的任何地方,但只有当鼠标未悬停特定的元素...
$("body").mousedown(function() {
if ($(".title").is(":hover") || $(".helper").is(":hover")) return;
$(".helpers").slideUp();
});
$(".title").mouseover(function() {
$(".helpers").slideDown();
});
此代码是(在http://siwego.net机顶页盘旋“dev_helpers”)为我工作很好,直到我不得不将第二个“.helper”元素添加到源代码中。在那之后,点击身体,JavaScript的转储以下错误:
Error: Syntax error, unrecognized expression: unsupported pseudo: hover
我试图修改代码以实现循环要素:
$("body").mousedown(function() {
if ($(".title").is(":hover")) return;
$('.helper').each(function(i, obj) {
if ($(this).is(":hover")) return;
});
$(".helpers").slideUp();
});
$(".title").mouseover(function() {
$(".helpers").slideDown();
});
错误没有显示了,但是:悬停检查“为每个'都不起作用(它不能防止slideUp())。
我不得不这样做:
$("body").mousedown(function() {
if ($(".title").is(":hover") || $(".helper1").is(":hover") || $(".helper2").is(":hover")) return;
$(".helpers").slideUp();
});
$(".title").mouseover(function() {
$(".helpers").slideDown();
});
但它不适合我的解决方案,因为我必须添加新的元素检查每个“.helperX”实例.....
也许有人将有任何线索...
我没有看到您链接的站点中出现的任何类,'title','helper'或'helpers'。此外,请避免链接到外部网站,但使用代码片段最小限度地重现您的问题或在[JSfiddle](http://jsfiddle.net)上执行。 – Terry 2014-10-20 19:33:32
您的'.each()'循环不会执行任何操作。它测试元素是否被徘徊,但根据其结果而不做任何事情。该函数只是返回,然后转到循环中的下一个元素。 – Barmar 2014-10-20 19:39:09