2011-06-18 1 views
0

Так что я продолжаю получать ошибку «Объект не поддерживает это свойство или метод». Я могу заставить меню сползать вниз, но я не могу заставить его скользить, когда моя мышь покидает меню. (#suggestions)jQuery slideUp problem

Вот мой код: (JQuery 1,6)

<script type="text/javascript"> 
function lookup(inputString) { 
    if(inputString.length == 0) { 
     // Hide the suggestion box. 
     $('#suggestions').hide(); 
    } else { 
     $.post("rpc.php", {queryString: ""+inputString+""}, function(data){ 
      if(data.length >0) { 

       $('#suggestions').slideDown('slow'); 
       $('#autoSuggestionsList').html(data); 

     // slideUp on mouseleave 
     $('#suggestions').mouseleave(function() { 
     $('#suggestions').slideUp('slow'); 
     }); 

      } 

     }); 

    } 

} // lookup 


function fill(thisValue) { 
    $('#inputString').val(thisValue); 
    setTimeout("$('#suggestions').hide();", 200); 
} 

+1

Как эти функции называются? –

+0

Это все ваш скрипт? И я вижу, что вы связываете события внутри своего вызова .post() - что вы пытаетесь выполнить здесь? – kinakuta

ответ

1

Вы оборачивать этот код в готовый обработчик?

$(function(){ 
    // all your stuff in here so all the elements you select exist before you assign handlers to them 
}); 

Если нет, вы можете получить непоследовательные результаты в зависимости от того, где вы положили свой сценарий.

Редактировать Фактически это не имеет значения в вашем случае, потому что вы определяете здесь только функции.

+0

Я закончил тем, что поставил это на вершине своего сценария, и теперь он работает. '$ (документ) .ready (функция() { // Выведение коробку предложения, когда не активные $ ("# предложения"). MouseLeave (функция() { SetTimeout (" $ ('# предложения "). slideUp ('slow');", 200); }); }); ' – Ryan

+0

Это имеет смысл - $ (document) .ready (function() - это по сути то же самое - версия, которую я показываю, является просто сокращенной. Затем вместо того, чтобы просто определять функции, которые вы привязали к событию mouseleave, которое работает только тогда, когда события, а не вызов функций. – kinakuta