2012-06-08 3 views
-1

У меня возникли проблемы с отображением div на клик, используя JQuery. Весь код выглядит корректно для меня. На моем веб-сайте у меня есть панель поиска, в которую я пытаюсь добавить предложения поиска. Но по умолчанию я бы хотел, чтобы это было скрыто. Только если пользователь выбирает «Показать предложения», он появится. Действие формы пустое не имеет значения. Он не работает, даже если я удаляю форму вместе. Я не получаю никаких ошибок. Я пытаюсь решить эту проблему более часа, я ценю любую помощь в этом.Div, не показывающий по клику

HTML

<form action=""> 
    <input type="text" id="txt1" onkeyup="showHint(this.value)" /> 
    <input type="submit" value="Search" /><button id="hint"/>Show Suggestions </button> 
</form> 

<div id="searchhint" style="display:none; border:1px solid red; width:300px;" > Suggestions:<span id="txtHint"></span></font></div> 

JQuery

$(document).ready(function(){ 
    $("#hint").click(function(){ 
    $("#searchhint").show(); 
    }); 
}); 
+0

отладки попробовать или добавить console.log сказать, является ли проблема с событием (это 'show' вызывался в первую очередь?) Или с телом обработчика событий (' show' вызывается, но не работает?) – wrschneider

+1

Вы уверены, что загружен jquery? –

+0

Ваш код работает при извлечении: http://jsfiddle.net/Ralt/rdBsk/ (обратите внимание, что я добавил 'return false', чтобы предотвратить отправку формы. Проверьте консоль на наличие других ошибок. –

ответ

1

я забыл загрузить JQuery. У меня был JavaScript, запущенный на моей странице, поэтому я предполагал, что JQuery тоже должен работать, хотя я знаю, что он ДОЛЖЕН быть загружен первым, чтобы он работал. Таким образом, для всех людей с аналогичной проблемой сначала проверьте, загружен ли JQuery.

<script src="jquery.js"></script> 
2

Ваш HTML имеет неверный формат, вы закрываете "шрифт" тег, который вы никогда не откроется в этом #searchhint дел. В любом случае тег Font обесценивается, поэтому вам следует избегать его использования.

+0

Спасибо за ответ, это еще не устранило мою проблему. – AnchovyLegend

+3

Несмотря на то, что HTML неверен, поскольку это не отвечает на вопрос, это должен быть комментарий. –

+0

Когда я исправил разметку в своем примере, она исправила функциональность - отсюда мой ответ - ответ. – Arbiter

2

Вы должны предотвратить поведение по умолчанию. использовать preventDefault функции

$(document).ready(function(){ 
    $("#hint").click(function(e){ 
    e.preventDefault(); 
    $("#searchhint").show(); 
    }); 
}); 

Пример: http://jsfiddle.net/Nbq9Y/3/

Это должно работать если у вас есть действительный HTML-разметка и никаких других ошибок сценария на странице.

+0

+1 Я использовал '.toggle' в моей, но вы снова попали сюда :-) –

+0

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

+0

@Arbiter: Если кнопка находится внутри формы, браузеры будут отправлять форму. http://www.w3schools.com/tags/tag_button.asp. Иными словами, он должен использовать тип ввода = «кнопка» /> в таких случаях. – Shyju

0

Посмотрите на вашу кнопку теге ... вы закрыли его перед «Показать Предложения»

+0

Он по-прежнему работает. Браузеры с глупыми ошибками в настоящее время :) См. Http://jsfiddle.net/Ralt/rdBsk/ –

+0

Я тоже вложил его в скрипку ... он поручил мне в Chrome ...однако, исправление неверного HTML заставило его работать отлично ... также ... мне пришлось добавить действие в форму, потому что он перезагружал скрипку, когда я нажал кнопку ..., которую я нашел очень странным. –

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