1

クラス「コメント」を持つdivにカーソルを合わせると、返信ボタンがフェードインする機能があります。

私が抱えている問題は、ボタンがフェードインしたときにクリックできるようにすることです。

$(".comment").hover(
        function() {
            $(this).children(".commentOptions").fadeIn();
            $(this).children("#reply").live('click',function(){
                alert('clicked'); 
            });
        },
        function() {
            $(this).children(".commentOptions").fadeOut();
        });



<div id="comment" class="comment">
      <div class="commentOptions">
          <div class="reply">
             <div class="button" id="reply">Reply</div>
          </div>
      </div>
</div>

これに関するヘルプは非常に見習いになるでしょう、ありがとう。:)

4

2 に答える 2

0

マークアップに基づいて#reply、 の子要素ではない.commentため、それに対処するには、次のようなものまたはより単純な.commentものを使用する必要があります (ID は一意である必要があるため)。また、要素をホバーするたびにイベントをバインドする必要はなく、 1 回で済みます。以下に例を示します。$("#reply", this)$("#reply")click

$(".comment").hover(function() {
    $(this).children(".commentOptions").fadeIn();
}, function() {
    $(this).children(".commentOptions").fadeOut();
});

$("#comment").on("click", "#reply", function() {
    alert('clicked');
});​
于 2012-06-03T21:53:25.887 に答える
0
$(".comment").hover(
    function() {
        $(this).children(".commentOptions").fadeIn(1000, function(){
           $("#reply").on("click", replyClicked);
        });
    },
    function() {
        $(this).children(".commentOptions").fadeOut(1000, function(){
          $("#reply").off("click", replyClicked);
        });
});

function replyClicked(){
  alert("Clicked");
}

http://jsfiddle.net/S7rxh/

于 2012-06-03T21:54:42.713 に答える