0

下面的代码假设删除#approve 和#deny 并在按下其中一个链接时回显用户按下的内容。

<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 回答