Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript通过锚调用函数_Javascript_Jquery_Html - Fatal编程技术网

Javascript通过锚调用函数

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> 它甚至都不警觉!有人能帮我

我想做一些类似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>
它甚至都不警觉!有人能帮我吗

$(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');
        }
    });
});