toggleClass之后,ClassName变为未定义
ClassName becomes undefined after toggleClass
这是我的代码。当我"切换拇指向上的字形图标"并试图在点击向下投票按钮时获得其类名的值。它给出了未定义的值。
附言:当我试图在它自己的函数中获得它的值时,它运行得很好。
<div style="float:right">
<a class="upvotebtn" href="#" ><i class="fa fa-thumbs-o-up"></i>10000</a>
<a class="downvotebtn" href="#" ><i class="fa fa-thumbs-o-down"></i>10000</a>
</div>
$('.upvotebtn').click(function(){
$(this).find('i').toggleClass('fa-thumbs-o-up').toggleClass('fa-thumbs-up');
$(this).toggleClass('upvotebtn').toggleClass('upvotebtn-highlight');
});
$('.downvotebtn').click(function(){
$(this).find('i').toggleClass('fa-thumbs-o-down').toggleClass('fa-thumbs-down');
$(this).toggleClass('downvotebtn').toggleClass('downvotebtn-highlight');
});
您应该使用.on
设置事件处理程序,因为它本质上是动态的。您还可以在单个.toggleClass
中传递多个类
$(document).on("click", '.upvotebtn', function(){
$(this).toggleClass('upvotebtn upvotebtn-highlight').find('i').toggleClass('fa-thumbs-o-up fa-thumbs-up');
});
$(document).on("click", '.downvotebtn', function(){
$(this).toggleClass('downvotebtn downvotebtn-highlight').find('i').toggleClass('fa-thumbs-o-down fa-thumbs-down');
});
此外,我真的怀疑你切换的类不是你想要的。
您正在更改按钮的类,然后尝试按该类进行选择。那行不通。相反,切换一个不在选择器中使用的类。例如:
$('.upvotebtn').click(function(){
$(this).find('i').toggleClass('fa-thumbs-o-up').toggleClass('fa-thumbs-up');
$(this).toggleClass('upvotebtn-highlight');
});
此代码适用于我。
$(document).ready(function(){
$('.upvotebtn').click(function(){
$(this).find('i').toggleClass('fa-thumbs-o-up fa-thumbs-up');
$(this).toggleClass('upvotebtn upvotebtn-highlight');
});
$('.downvotebtn').click(function(){
$(this).find('i').toggleClass('fa-thumbs-o-down fa-thumbs-down');
$(this).toggleClass('downvotebtn downvotebtn-highlight');
});
});
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.4.0/css/font-awesome.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<div style="float:right">
<a class="upvotebtn" href="#" ><i class="fa fa-thumbs-o-up"></i>10000</a>
<a class="downvotebtn" href="#" ><i class="fa fa-thumbs-o-down"></i>10000</a>
</div>
相关文章:
- 为什么“;未定义的“;在JavaScript中结束循环
- 要求未定义JS回调参数
- 如何检查管道中未定义的项目
- TypeError:无法读取属性'推'未定义的JavaScript
- $window.ga在AngularJS事件中未定义
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 无法获取属性'selectedIndex'的未定义引用或null引用
- 如何消除代码中的未定义和其他问题
- 未捕获的ReferenceError:$未定义
- this.router在AngularJS 2中未定义
- 未捕获的类型错误:无法读取属性'删除'的未定义
- 节点fs.stat名称未定义
- 尝试在PHP中回显输入文本时出现未定义的索引错误
- Jquery未定义函数正在停止其他操作
- AngularJS指令出错-无法读取属性'编译'的未定义
- toggleClass之后,ClassName变为未定义
- 类型错误:document.getElementsByTagName(..).className未定义
- JavaScript运行时错误:无法获取property 'className'未定义或空引用的
- Element.className返回未定义