2014-11-05 2 views
0

Текущий вопрос является продолжением $(".someclass").is(":hover") works well for only single "someclass" instance.slideUp() и slideDown() при наведении курсора мыши() вопрос - для каждого элемента по-разному

ниже Jquery сниппет работает Allready хорошо http://jsfiddle.net/4x661tt6/

$(document).ready(function() { 
    $("body").mousedown(function() { 
     if ($(".title").is(":hover") || $(".helper:hover").length) return; 
     $(".helpers").slideUp(); //slideToggle(); 
    }); 
    $(".title").mouseover(function() { 
    $(".helpers").slideDown(); 
    }); 
}); 

моя следующая проблема является чтобы он запускался с http://jsfiddle.net/4x661tt6/1/ (распознать щелчки мыши с помощью мыши, исключая «.title» «.helper»), и, кроме того, чтобы каждый триггер заголовка имел значение slideDown() принадлежащих ему дочерних элементов по-разному ...

Теперь, после источника вн ension другого меню, зависания в любой ".title" slidesDown() обоих случаях, и фоновые щелчки заканчивалось признан


редактировать: ив изменил линию возврата для

if ($(".title:hover").length || $(".helper:hover").length) return; //is(":hover") 

и он распознает теперь больше «.title» экземпляров .... я мог бы выкопать его раньше!

теперь только проблема заключается в slideDown каждый «.title» по-разному, и больной дома

+0

«Это работает здесь, теперь я хочу, чтобы запустить его там» не правильное описание проблемы. Вы пробовали что-то, чтобы решить проблему, или вы просто отправляете вопросы один за другим ...? –

+0

Прочитайте вопрос перед комментированием. Абсолютных позиционированных элементов нет. –

+0

Я на самом деле получаю ошибку во время выполнения во втором примере, в котором говорится: «Неиспользуемая ошибка: ошибка синтаксиса, нераспознанное выражение: unsupported pseudo: hover» –

ответ

0

is(":hover") будет работать только на одном экземпляре.

Попробуйте этот бит:

$("body").mousedown(function() { 
    var isHovered = !!$('.title, .helper'). 
       filter(function() { return $(this).is(":hover"); }).length; 

    if (isHovered) 
    return; 
    alert('triggered'); 
}); 

http://jsfiddle.net/wxfok6mv/1/

+0

Я уже решил, что 'if ($ (". Title: hover "). Length || $ (". Helper: hover "). Length) return;' но ваше решение, вероятно, лучше. Теперь мне нужно сделать '$ (". Title "). Mouseover (..' работать для каждого ".title" по-разному/нет связанного фрагмента jsfiddle, но его ненужный, я считаю, что его общая проблема –

+0

Ok большая часть вопроса был решен, я могу принять ваш ответ. Это был быстрый вопрос, извините, если вам не нравятся легкие специальные проблемы здесь: –

+0

Я начинаю верить, что, возможно, этот метод немного отстает от того, что вы хотите выполнить. Т.е., почему позаботьтесь о том, чтобы щелкнуть мышью, если то, что вы хотите сделать, - это открыть меню с зависанием? Разметка, представленная в скрипке, на самом деле не объясняет скрытое меню со сдвигом/переключением. Я был бы счастлив попробовать дальше, если вы положите вверх по некоторой разметке того, что вы на самом деле хотите совершить с элементами, скрытыми до тех пор, пока не будет вызван/etc. – briansol