我想做一些类似FB'Like'的点击方式,但我在调用锚链接方面遇到了问题。
<li id="vote-ico"><a class="unlike" href="javascript:void(0)">Unlike</a></li>
<li id="vote-ico"><a class="like" href="javascript:void(0)">Like</a></li>
但是下面的JS没有用。
$('.unlike').click(function(){
alert($(this));
$(this).removeClass('unlike').addClass('like', function(){
//action
}).text('like');
})
$('.like').click(function(){
alert($(this));
$(this).removeClass('like').addClass('unlike', function(){
//action
}).text('unlike');
})
它甚至没有警觉!有人能帮助我吗?
答案 0 :(得分:0)
$(document).ready(function(){
$('.like').click(function(e){
alert($(this));
$(this).removeClass('like').addClass('unlike', function(){
//action
}).text('unlike');
})
});
将其放入文档中,以确保没有时间问题。在元素位于页面上之前,无法附加.click处理程序。
如果需要在元素存在之前附加处理程序
,则可以使用.on$("#someParent").on("click",".like",function(){alert(''test)});
答案 1 :(得分:0)
尝试使用document.ready:
包装代码<script type="text/javascript">
$( document ).ready(function() {
$('.unlike').click(function(){
alert($(this));
$(this).removeClass('unlike').addClass('like', function(){
//action
}).text('like');
})
$('.like').click(function(){
alert($(this));
$(this).removeClass('like').addClass('unlike', function(){
//action
}).text('unlike');
})
});
</script>
答案 2 :(得分:0)
在您的代码中,您绑定了unlike
和like
的点击事件。但你永远不会unbind
。当removeClass
<a>
标记它时,它只删除元素类,但click事件始终与您的element
试试这个 -
$(document).ready(function(){
$('.lnkClick').click(function(){
alert($(this).text());
if($(this).text() == "Unlike"){
$(this).text('like');
}
else{
$(this).text('Unlike');
}
});
});
使用onclick
代码的<a>
-
HTML -
<li id="vote-ico"><a class="unlike" href="javascript:void(0)" onclick="LikeIt($(this));">Unlike</a></li>
<li id="vote-ico"><a class="like" href="javascript:void(0)" onclick="LikeIt($(this));">Like</a></li>
Jquery -
function LikeIt(Obj){
if(Obj.attr('class') == "unlike"){
Obj.removeClass('unlike').addClass('like', function(){
//action
}).text('like');
}
else{
Obj.removeClass('like').addClass('unlike', function(){
//action
}).text('unlike');
}
}
答案 3 :(得分:0)
<ul>
<li id="vote-ico"><a name="unlike" class="likeUnlike like" href="javascript:void(0)">Unlike</a></li>
</ul>
$(document).ready(function () {
$('.likeUnlike').click(function(){
var status=$(this).attr('name');
if(status=='unlike')
{
var $this= $(this)
$this.removeClass('liked').addClass('unlike');
$this.attr('name','like');
$this.text('unliked');
}
else{
var $this= $(this)
$this.removeClass('unlike').addClass('like');
$this.attr('name','unlike');
$this.text('liked');
}
});
});
演示:http://jsfiddle.net/zeewon/TKZn6/3/
并且关于你的html:如果你使用两个li标签,他们应该有不同的id。 这符合您的要求,请参阅demo.thanks