JQuery скрыть / показать - PullRequest
       7

JQuery скрыть / показать

0 голосов
/ 20 января 2011

Я обнаружил jQuery прошлой ночью, и это кажется очень хорошим! Я использую его, чтобы показать / скрыть идентификатор div, с щелчком в качестве триггера, чтобы показать идентификатор div, который изначально скрыт на странице. Это прекрасно работает, я гордился этим: -)

Однако у меня проблема: после нажатия на триггер я хочу, чтобы он стал скрытым. Поэтому я попытался добавить строку, чтобы скрыть триггер onclick, но это не только не работает, теперь при загрузке страницы отображается изначально скрытый div.

Это то, что я изначально пробовал:

$(document).ready(function () {  
$(‘#showhidetarget’).hide();

$(‘a#showhidetrigger’).click(function () {  
$(‘#showhidetarget’).show(200);  
**$(‘a#showhidetrigger’).hide();**  
});  
});

Теперь кто-то предположил, что, возможно, я не могу скрыть триггер, потому что это встроенный элемент (я ничего об этом не знаю). Он предложил поместить триггер внутри другого идентификатора div, что имело смысл. Итак, после определения другого div с идентификатором «hideafterclick», который содержит триггер, код выглядит следующим образом:

$(document).ready(function () {  
$(‘#showhidetarget’).hide();  

$(‘a#showhidetrigger’).click(function () {  
$(‘#showhidetarget’).show(200);  
**$(‘#hideafterclick’).hide();**  

Но с тем же самым печальным результатом: начальная часть (триггер) не скрыта, И div, который должен быть скрыт, сразу виден onload, тогда как он должен быть скрыт. Когда я удаляю жирные строки, содержащие .hide, процедура работает отлично.

Есть предложения, что я делаю не так? Или как это решить? Просто чтобы быть полным: обе «части» (div) содержат код и гиперссылки. На самом деле щелчок по первой части (триггер) открывает новое окно и показывает вторую часть, это работает нормально. Просто первая часть (триггер) должна впоследствии стать невидимой ...

Кто может мне помочь с этим?

Должен ли я использовать что-то еще, кроме div, может быть?

Заранее благодарим за вашу мудрость и помощь,

Томас (Бельгия)


Дорогой Шикирью, Дорогой Дэвид Йелл,

Большое спасибо за ваши jsFiddles: я не знал о jsFiddle, но он потрясающий, такой полный, такой ясный и в то же время такой простой!
Иногда счастье можно найти в небольшой детали, которая кажется неважной. Потому что, в конце концов, все что я сделал, это сделал одну небольшую модификацию ...
, изначально записанное в триггерной части, содержащей href, было так:

<a id="showhidetrigger" href="HYPERLINK"> blabla</a>

И, основываясь на вашем примере, я в итоге изменил расположение идентификатора тега, поэтому он стал:

<a href="HYPERLINK" id="showhidetrigger">blabla</a>  

Не спрашивайте меня, почему, я до сих пор не знаю, в чем именно разница, но теперь это работает как шарм, и это главное! Конечно, часть HYPERLINK в моем случае очень длинная, она принадлежит CFOutput с большим количеством тегов и запросов, содержит другой javascript для открытия ссылки во всплывающем окне и т. Д., Так что, возможно, именно в этом она и пошла не так в первой место.

Я счастлив, благодаря вашей помощи!

С благодарностью,

Thomas


Привет всем, Большое спасибо за ваши ответы до сих пор! Об апострофах: я хорошо использовал общие «единицы», кажется, что при копировании их из почтового окна они менялись, но они в порядке в самом коде, поэтому проблемы нет. О ** звездочках: я просто положил их туда, чтобы указать на раздел, где он идет не так. извините, если это вызвало путаницу, я понял, что ** сделает эту строку жирным шрифтом, моя ошибка. Но в любом случае в самом коде нет звездочек. Просто пока я не добавляю эту последнюю строку, она работает отлично: onclick href триггера открывается (в новом окне, используя javascript) и (первоначально скрытый) целевой div становится видимым , Но как только я попытался скрыть триггер, целевой div виден при загрузке, а триггер не скрыт onclick. Тогда я связал другой код div с кодом, содержащим триггер, но с тем же результатом.

Уважаемый Davidyell, спасибо за ваше предложение. Я постараюсь проверить, работает ли это, и дам вам знать. Страница, над которой я работаю, довольно сложная, в ColdFusion (я не знаю ColdFusion), и оба триггера, href с всплывающим окном javascript и т. Д ... все находятся внутри CFoutput. Я надеюсь, что смогу увидеть "деревья в лесу" (свободно переводится с фламандской пословицы: -)

Я буду держать вас в курсе!

С уважением,

Томас (Бельгия)

Ответы [ 4 ]

0 голосов
/ 20 января 2011
$('#triggerDiv').click(function () {
    $(this).hide();
    $('#hiddenDiv').show(200);
});

Используйте апострофы вместо кавычек.

0 голосов
/ 20 января 2011

Если вы когда-либо сталкиваетесь с подобными проблемами, используйте Firefox с Firebug и, если у вас есть какие-либо ошибки в Javascript, это, как правило, укажет вам правильное направление.Попробуйте сделать это, чтобы увидеть, какую ошибку он показывает.

Вы также используете вместо ' или ", что может повлиять на анализ веб-страницы., последняя строка начинается и заканчивается **.Это, вероятно, приведет к ошибке.

0 голосов
/ 20 января 2011

Во-первых, забудьте, что кто-то сказал вам.Вы можете скрыть встроенные и заблокировать компоненты.

Тогда вам не следует использовать эти странные , используйте ' или "

Вот демонстрация

0 голосов
/ 20 января 2011

Я бы сделал что-то похожее на это, http://jsfiddle.net/nxPEr/1/

Надеюсь, это поможет :) Удачи с JQuery! Это невероятно:)

...