Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Функция не идет после второго клика. (https://javascript.ru/forum/misc/35157-funkciya-ne-idet-posle-vtorogo-klika.html)

SnakeAce 01.02.2013 10:10

Функция не идет после второго клика.
 
Есть код поиска. Он хорошо ищет и выводит материалы в окошко div. Меня интересует то, что Close после того как мы активировали поиск работает, но после запроса мы уже не можем скрыть окно, как с этим быть? Помогите так же сделать, чтобы при сбросе актива на поле поиска пропадало и само окошко с результатами, но восстанавливалось при след. активе.
$('#query').keydown(function (k) { if (k.keyCode == 13) { search();}
 });
 function search() {
 $('#query').attr('readonly', 'readonly'); 
 $('#qlist').html('Поиск') 
 if ($('#query').val().length >= 2) {
 setTimeout(function () { 
 question = $('#query').val();
 $('#qlist').html(''); 
 $('#qlist').css({display:'block'})
 $.get('/search/?q=' + question + ';t=0;p=1;md=', function (sch) {
 resnum = $('.res_count', sch).text();
 if(resnum == '0') {
 $('#query').removeAttr('readonly');
 $('#qlist').html('<font style="font-size:10px">Нет результатов по запросу <b>'+ question +'</b>, измените запрос и повторите попытку.</font>');
 $('#qlist').css({height:'40px'})
 } else {
 $('#query').removeAttr('readonly'); 
 $('.eTitle:lt(15)', sch).each(function () {
 $('#qlist').append('<div class="result_s">'+$(this).html()+'</div>');
 $('#allres').html('<center>' +_uButton(null, 'button',{style:1,text: 'Все результаты',content: 'onclick=\'location.href="/search/?q='+$('#query').val()+'" \' '})+ '</center>')
 })
 }
 })
 },1500)
 } else {$('#query').removeAttr('readonly'); $('#qlist').html('<div style="font-size:10px">Запрос должен содержать не менее 2 символов</div>');}
 }
 
function closep(){
    $('#search_body').css('display', 'none');
}

<div style="padding:3px"> 
 <input onfocus="if($(this).val() == 'Ваш запрос...') {this.value='';$('#search_body').slideToggle 
(500)}" onblur="if($(this).val() == '') {$('#search_body').slideToggle(500)}" name="q" id="query" value="Ваш запрос..." style="width: 210px;height:25px;margin-bottom:3px;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;" type="text"> 
 <span id="search_body" style="display:none; padding-top: 0px; overflow: hidden; height: auto; background-color: rgba(255, 255, 255, 0.972549); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; -webkit-box-shadow: rgba(0, 0, 0, 0.498039) 0px 0px 10px; box-shadow: rgba(0, 0, 0, 0.498039) 0px 0px 10px; position: absolute; top: 32px; right: 0px; width: 290px; z-index: 9999; text-align: center; background-position: initial initial; background-repeat: initial initial;"> 
 <div id="qlist">Введите запрос... </div> 

 <a class="closepoisk" onclick="closep(); return false;">Close</a>
<span id="allres"></span>
</span> 
 </div>

рони 01.02.2013 11:04

SnakeAce,
странный у вас css в 30 строке :write:

danik.js 01.02.2013 11:15

Цитата:

$('#search_body').css(display:none);
Вот здесь будет синтаксическая ошибка.
либо css({display:'none'}) либо css('display', 'none')

SnakeAce 01.02.2013 11:50

Спасибо, что нашли ошибку в css, но суть от этого не изменилась :(

danik.js 01.02.2013 20:28

Попробуйте ту саму строчку заменить на $('#search_body').slideToggle(500)


Часовой пояс GMT +3, время: 06:59.