Javascript通过锚调用函数
我想做一些类似FB“like”风格的点击,但我在调用锚链接时遇到了问题Javascript通过锚调用函数,javascript,jquery,html,Javascript,Jquery,Html,我想做一些类似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> 它甚至都不警觉!有人能帮我
<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>
它甚至都不警觉!有人能帮我吗
$(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)});
请尝试使用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>
$(文档).ready(函数(){
$('.与之不同')。单击(函数(){
警报($(本));
$(this).removeClass('discussion').addClass('like',function(){
//行动
}).text(“like”);
})
$('.like')。单击(函数(){
警报($(本));
$(this).removeClass('like').addClass('dishoused',function()){
//行动
}).text('不同');
})
});
在您的代码中,您绑定了不像和像的点击事件。但你永远不会解开它。当您从
使用
$(文档).ready(函数(){
$('.likeUnlike')。单击(函数(){
var status=$(this.attr('name');
如果(状态==‘不同’)
{
变量$this=$(this)
$this.removeClass('liked').addClass('inference');
$this.attr('name','like');
$this.text('unliked');
}
否则{
变量$this=$(this)
$this.removeClass('inference').addClass('like');
$this.attr('name','inference');
$this.text('liked');
}
});
});
演示:
关于html:如果您使用两个li标记,它们应该具有不同的id。
这将符合您的要求。请参阅演示。谢谢与HTML相关的JS代码在哪里?此代码需要在HTML准备好/呈现后执行。请参见-您生成警报的方式不正确。@andrew buchan,警报没有问题。它与绑定有关。1.将代码包装在就绪处理程序中。如果需要,请使用事件委派您可以使用ajax技术。href=“javascript:void(0)
,这也不会起任何作用,因为警报将保留导航
<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>
$(document).ready(function(){
$('.lnkClick').click(function(){
alert($(this).text());
if($(this).text() == "Unlike"){
$(this).text('like');
}
else{
$(this).text('Unlike');
}
});
});
<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>
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');
}
}
<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');
}
});
});