0

以下のコードは、#approveと#denyを削除し、リンクの1つが押されたときにユーザーが押したものをエコーすることを想定しています。

<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
    $('#approve').click(function(){
            $('#approve').unbind('click');
            $('#deny').unbind('click');
            $('.rare').html('Approved!');
        });
        return false;
    });
    $('#deny').click(function(){
            $('#approve').unbind('click');
            $('#deny').unbind('click');
            $('.rare').html('Denied!');
        });
        return false;
    });
})
</script>
</head>
<body>
<div class="rare">
    <a href id="approve">Approve</a>
    <a href id="deny">Deny</a>
</div>
</body>
</html>

しかし、それは機能していないようです。私はjqueryを初めて使用するので、なぜ機能しないのかわかりません。jqueryは私のグーグルをホストしています

4

2 に答える 2

7

ネストが壊れているように見えます。これを試してください:

$(function(){

    $('#approve').click(function(){
        $('#approve').unbind('click');
        $('#deny').unbind('click');
        $('.rare').html('Approved!');
        return false;
    });

    $('#deny').click(function(){
        $('#approve').unbind('click');
        $('#deny').unbind('click');
        $('.rare').html('Denied!');
        return false;
    });
})

また、false を返す理由については推測しませんが、デフォルトのclickイベント動作を防止したい場合は、次の方法をお勧めします。

$('#deny').click(function(e){
    // Absorb click
    e.preventDefault();
    $('#approve').unbind('click');
    $('#deny').unbind('click');
    $('.rare').html('Denied!');
});

乾杯

于 2012-08-14T20:57:24.030 に答える
1

これがまさにあなたのコードである場合、firbug/IEのコンソールでエラーが発生するはずです。準備完了関数を途中で終了し、関数の外部で値を返すだけでなく、$(function(){いくつかのハングが発生しています。})

コードはおそらく次のようになります。

$(function(){
    $('#approve').click(function(){
            $('#approve').unbind('click');
            $('#deny').unbind('click');
            $('.rare').html('Approved!');
    });
    $('#deny').click(function(){
            $('#approve').unbind('click');
            $('#deny').unbind('click');
            $('.rare').html('Denied!');

    });
});
于 2012-08-14T20:58:27.703 に答える