下面的代码假设删除#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托管我的谷歌
答案 0 :(得分: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!');
});
干杯
答案 1 :(得分: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!');
});
});