Jquery Нажмите на ссылку, покажите окно, а затем закройте окно. - PullRequest
0 голосов
/ 19 декабря 2011

Что-то не так с этим кодом?Пробовал и тестировал сто раз.

<a href="#comment_magic" id="comment_magic_1" name="comment_magic_1" class="u">0 comments</a>
<div id="open_sesame_1" style="display:none" class="open_sesame_1">
test
</div>

jQuery:

$("#comment_magic_1").click(
function () {
$("#open_sesame_1").slideDown();
}, function () {
$("#open_sesame_1").slideUp();
}); 

Ответы [ 4 ]

1 голос
/ 19 декабря 2011

click () не принимает два обработчика событий.

.click (обработчик (eventObject))

обработчик (eventObject) Функция, выполняемая при каждом запуске события.

Вместо этого вы можете использовать slideToggle () .

$("#comment_magic_1").click(function() {
    $("#open_sesame_1").slideToggle();
});
1 голос
/ 19 декабря 2011

В случае, если я вас правильно понял, и вы хотите, чтобы slideUp запускался при втором щелчке, вы не можете передать функцию второго обработчика в механизм привязки кликов. Вместо этого вы можете использовать slideToggle(), который будет либо показывать, либо скрывать выборку в зависимости от текущей видимости.

Как:

$('#comment_magic_1').click(function(){
     $("#open_sesame_1").slideToggle();
});

См .: http://api.jquery.com/slideToggle/ и http://api.jquery.com/click/

1 голос
/ 19 декабря 2011

Вы дали свой div css display none, а затем двигаете его вверх и вниз. Поскольку это не где-то видно, вы не видите, что происходит действие. В свой jquery добавьте css display:block onclick, и он будет скользить вверх и вниз.

Примерно так:

http://jsfiddle.net/6sz6V/3/

1 голос
/ 19 декабря 2011

Попробуйте вместо этого:

$("#comment_magic_1").click(function() {
       $("#open_sesame_1").slideToggle();
}); 

Скрипка: http://jsfiddle.net/adeneo/hxS3d/

...