0

単純な問題ですが、私には解けないようです。私はこのコードを持っています、それはそれ自体をほとんど説明しています:

    $('div.userrate').hover(function() {
        var width = $(this).width();
        $(this).width(width);
        $(this).stop().children('form').fadeOut('fast', function() {
            $(this).next('p.hidden').fadeIn('fast')
        });
    }, function() {
        $(this).children('p.hidden').stop().fadeOut('fast', function() {
            $(this).prev('form').fadeIn('fast')
        })
    })

それはうまく機能しますが、すべての要素をすばやく実行すると壊れます。p.hiddenとの両方formが表示されます。ここにいくつかのアクションを追加しようとしましstop()たが、役に立ちませんでした。

助言がありますか?

- 編集 -

リクエストに応じて、.userrate の HTML:

<div class="userrate">    
<form>    
<input class="star {split: 2}" type="radio" disabled="disabled" value="1">    
<input class="star {split: 2}" type="radio" disabled="disabled" value="2">    
<input class="star {split: 2}" type="radio" disabled="disabled" value="3">    
<input class="star {split: 2}" type="radio" disabled="disabled" value="4">    
<input class="star {split: 2}" type="radio" disabled="disabled" value="5">    
<input class="star {split: 2}" type="radio" disabled="disabled" value="6">    
<input class="star {split: 2}" type="radio" disabled="disabled" value="7">    
<input class="star {split: 2}" type="radio" disabled="disabled" value="8">    
<input class="star {split: 2}" type="radio" disabled="disabled" value="9" checked="checked">    
<input class="star {split: 2}" type="radio" disabled="disabled" value="10">
</form>    
<p class="hidden">Skończyłem</p>    
</div>
4

1 に答える 1

1

最も簡単なことは.stop()、コールバック フェードにも追加することです。に変更.fadeIn()すると.fadeTo()、評価要素が常に完全にフェードインするようになります(問題が発生していました)。.hidden要素が適切にフェードアウトしないという問題はありませんでしたが (これは理にかなっています)、場合によっては使用できます.fadeTo()

フィドルの例を次に示します: http://jsfiddle.net/36SCH/

于 2012-06-12T17:02:36.313 に答える