0

jQuery の slideUp および slideDown 関数で問題が発生しています。このサイトに行くと

www.confide.re/confide

ボックスの1つをクリックすると、通常は正常に動作しますが、ページをスクロールしてさらにいくつかのボックスをロードすると、スライド機能がバグを起こし、理由もなく2回実行します。

これは私がどこかで間違ったことをしたのでしょうか、それとも既知のバグですか?

ありがとう

コードは次のとおりです。

var state = 'down';

$('.overlay').click(function() {

     if(state == 'down') {
         $(this).next().slideDown(155);
         state = 'up';
     } else {
         $(this).next().slideUp(150);
         state = 'down';
}

.overlay は、各ボックスの上にある透明な div です。

4

3 に答える 3

1

clickこのように ajax 成功コールバックの外でイベントを定義します(より良いセレクターを使用してくださいbody。これは単なる例です)

$("body").on("click", ".overlay", function(e){
    $(this).next().slideToggle(150);
    $(this).css('background-color', 'rgba(0,0,0,0)');
});
于 2012-12-29T18:01:17.610 に答える
0

次のようなことをする必要があります:http://jsfiddle.net/chanckjh/Jak6Q/

html:

<div class="something">
    <div class="bar">

    </div>
</div>​

jquery:

$(function() {
    $('.something').click(function() {
        $('.bar').slideToggle();
    });
});​

css:

.something{
    width: 500px;
    height: 500px;
    border: 1px solid red;
}
.bar{
    display: none;
    width: 500px;
    height: 50px;
    background: blue;
}​

または子供のためにこのように:http://jsfiddle.net/chanckjh/Jak6Q/1/

$(function() {
    $('.something').click(function() {
        $(this).find('.bar').slideToggle();
    });
});​
于 2012-12-29T17:51:48.237 に答える
0

state特定のステータスを記録する必要がある多くの要素間で単一の変数を共有することはできません。代わりに、各要素の状態を保持する必要があります。

于 2012-12-29T17:59:32.157 に答える