2015-02-12 7 views
-1

Как я могу изменить это от наведения до щелчка?Javascript - от hover до щелчка

$(function(){ 
    $('ul#menu li').hover(function(){ 
     //$('#drop' , this).css('display','block'); 
     $(this).children('ul').delay(20).slideDown(600); 
    }, function(){ 
     $(this).children('ul').delay(20).slideUp(600); 
    }); 
}); 

Fiddle

+0

возможный дубликат [Переход от зависания к клик?] (http://stackoverflow.com/questions/4943886/changing-from-hover-to-click) – Mathletics

ответ

1

click принимает только один обработчик; hover уникален тем, что он занимает два. Вы должны будете использовать один обработчик:

$(function(){ 
    $('ul#menu li').on('click', function(){ 
     // note using slideToggle which automatically switches 
     // btwn up/down 
     $(this).children('ul').delay(20).slideToggle(600); 
    }); 
}); 

http://jsfiddle.net/8g7ead5x/1/


Или, согласно боян, вы можете использовать .toggle:

$(function(){ 
    $('ul#menu li').toggle(function(){ 
     //$('#drop' , this).css('display','block'); 
     $(this).children('ul').delay(20).slideDown(600); 
    }, function(){ 
     $(this).children('ul').delay(20).slideUp(600); 
    }); 
}); 
+0

Спасибо, но у него есть несколько ошибок, не так ли? Вы нажимаете один раз, и меню соскальзывает вниз, но если вы нажмете последний элемент, который должен открыть другое меню, он закрывает первый ... –

+0

Вам нужно будет остановить щелчок от пузыря. Однако это выходит за рамки вашего вопроса. (Также это подробно описано примерно в 12000 других вопросах здесь, в StackOverflow.) – Mathletics

+0

e.stopPropagation right? –

0

Просто измените имя функции hover в click. Это часть jQuery.


Используйте пример @Mathletics. Функция click выполняет только одну функцию, поэтому вам нужно изменить код. Я пересмотрел ваш Fiddle с помощью рабочего примера (Fiddle), так что теперь у вас есть третий вариант.

+0

Вот что я думал, но ... это не работает! –

+1

Можете ли вы включить 'console.log' в функцию' click', чтобы убедиться, что функция вызвана? – bvx89

+1

какой? lol Я мало знаю о js ... помогло бы, если бы я отправил скрипку со всем этим, чтобы вы могли увидеть сценарий в действии? –

Смежные вопросы