4

複数のイベントをバインドしてから、それらのいくつかをバインド解除しますか?これは正しいですか?

基本的に、要素にカーソルを合わせると背景色が変わり、要素からカーソルを合わせると元に戻りますが、要素をクリックすると、ホバー効果を無効にして背景色を別の色に変更し、ユーザーにわかりやすくします。彼らがそれをクリックしたこと。これを行うための最良の方法は何ですか?ありがとう!

$('.tellmereplies').bind({click: function() {
    $(this).animate({'backgroundColor':'#0099ff', 'color':'#fff'})
    $('.tellmereplies').unbind('mouseover','mouseout')
},mouseover: function() {
    $(this).animate({'backgroundColor':'#fbca54', 'color':'#fff'})
},mouseout: function() {
    $(this).animate({'backgroundColor':'#E4E4E4', 'color':'#c0c0c3'})
}
});
4

3 に答える 3

14

Take a look at jquery's event namespacing. I think that is probably going to be useful to you.

$("#div1").bind("event_name.namespace1");
$("#div1").bind("some_other_event.namespace1");
$("#div1").bind("event_name.namespace2");
$("div1").unbind(".namespace1");
于 2010-09-20T01:31:13.260 に答える
2

私はあなたがこれを探していると思います:

$('.tellmereplies').bind("click", function() {
    $(this).animate({'backgroundColor':'#0099ff', 'color':'#fff'})
    $(this).unbind('mouseover mouseout')
}).bind("mouseover", function() {
    $(this).animate({'backgroundColor':'#fbca54', 'color':'#fff'})
}).bind("mouseout", function() {
    $(this).animate({'backgroundColor':'#E4E4E4', 'color':'#c0c0c3'})
});
于 2010-09-20T01:22:15.750 に答える
0

私はこれを主にCSSで行います。:hover疑似クラスを使用して、リンクのホバー効果を作成できます。

.tellmereplies:hover {
    color: #fff;
    background-color: #0099ff;
}

次に、ユーザーがリンクをクリックしたときに、別のクラス値をリンクに追加し、リンクのホバー効果をオーバーライドします。

$('.tellmereplies').addClass('tellmereplies-clicked');

.tellmereplies-clicked {
    /* new colors */
}

.tellmereplies-clicked:hover {
    /* new colors */
}
于 2010-09-20T01:26:55.230 に答える