/ / jQuery hover()は、マウスの移動時にのみトリガされます - jquery

jQuery hover()は、マウスの移動時にのみトリガされます - jquery

私はそれが覆われたときに不透明度を変更するボタンを持っています: (正常に動作します)

$("#btn").hover(function() {
$(this).animate({"opacity":1},100);
}, function() {
$(this).animate({"opacity":.8},100);
});

そしてそれが押されると、それは下に移動します: (あまりにもうまく動作します)

$("#btn").on("click",function(){
$(this).animate({"margin-top":"-100px"},400);
});

問題:ボタンが移動すると、そのボタンはホバーエリアから離れて移動し、 しかし 最初のホバー状態はまだアクティブです(最初のホバー状態ホバー状態は、マウスがボタンの上にホバーされているときのみアクティブにする必要があります)。しかし、そこからマウスを移動すると、マウスが動くというjquery通知として2番目の状態がトリガされます。

hover()がマウスを動かさなくてもトリガする方法はありますか?

回答:

回答№1の場合は3

つかいます $(this).trigger("mouseout")

これにより、正しい hover() 発射するハンドラ。

デモ: http://jsfiddle.net/alan0xd7/va87ff96/


回答№2の場合は0

私がうまく理解していれば、移動した後にホバー状態がまだアクティブであるという問題があります。

次にアニメーションに不透明度を追加してみませんか?

$("#btn").on("click",function(){
$(this).animate({"opacity":.8,"margin-top":"-100px"},400);
});

デモ