связать событие с элементом до его срабатывания - PullRequest
0 голосов
/ 21 сентября 2011

У меня есть div результатов поиска, который я хочу скрыть, если пользователь щелкает где-либо за его пределами. Это не дитя критериев поиска div. У меня проблема в том, что .show (), похоже, не запускается вообще. Я бы подумал, что .hide () срабатывает только после первого нажатия на кнопку поиска. Очевидно, что когда результаты поиска div закрыты, я .unbind () событие.

Кинда поставлена ​​в тупик, поэтому любая помощь будет принята с благодарностью.

Вот пример кода.

function search(){
    $('#criteria').bind('click',function(){$('#results').hide();});
    $('#results').show();
    $('#results').html('some html from ajax call');
}

<div id=criteria>
    <input id=criteria1 /><input id=criteria2 /><input id=criteria3 />
    <!-- a whole page of input elements and a ajax lookup -->
    <input type=text id=lookup /><input type="button" onclick="search()" value="search" />
</div>
<div id=results></div>

1 Ответ

0 голосов
/ 21 сентября 2011

Если я вас правильно понимаю, вам нужно что-то вроде этого

<script>
$(document).bind('click',function(){$('#results').hide();});

function search(e){    
  $('#results').show();
  $('#results').html('some html from ajax call');
  e.cancelBubble = true;
}
</script>

<div id=criteria>
<input id=criteria1 /><input id=criteria2 /><input id=criteria3 />
<!-- a whole page of input elements and a ajax lookup -->
<input type=text id=lookup /><input type="button" onclick="search(event)" value="search" />

...