Jquery Bind Click не работает - PullRequest
       28

Jquery Bind Click не работает

0 голосов
/ 26 апреля 2011

У меня есть этот код для выпадающего меню:

var timeout    = 500;
var closetimer = 0;
var ddmenuitem = 0;

function jsddm_open()
{  jsddm_canceltimer();
   jsddm_close();
   ddmenuitem = $(this).find('ul').css('visibility', 'visible');
}

function jsddm_close()
{  if(ddmenuitem) ddmenuitem.css('visibility', 'hidden');}

function jsddm_timer()
{  closetimer = window.setTimeout(jsddm_close, timeout);}

function jsddm_canceltimer()
{  if(closetimer)
   {  window.clearTimeout(closetimer);
      closetimer = null;}}

$(document).ready(function() {
   $('#mainnavigation > li').bind('mouseover', jsddm_open)
   $('#mainnavigation > li').bind('mouseout',  jsddm_timer)});

document.onclick = jsddm_close;

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

$('#mainnavigation > li').bind('click', jsddm_open)

но это не работает.

Кто-то может мне помочь?

Ответы [ 2 ]

2 голосов
/ 26 апреля 2011

Сначала немного HTML поможет.

Кроме того, я думаю, что ваша функция работает, но нажатие <li> также вызывает document.onclick = jsddm_close; Таким образом, ваше меню открывается и закрывается сразу.

Попробуйте избавиться от линии document.onclick и посмотрите, работает ли она лучше

Вам также понадобится return false; в конце вашей jsddm_open() функции

1 голос
/ 26 апреля 2011

Можете ли вы попробовать это?

 $('#mainnavigation > li').click(function() {
        jsddm_open();
 });

В любом случае, я думаю, что вы упускаете "()" за методами, но возможно, что синтаксис для меня новый ...

...