[英]Multiple functions on single click event
我试图使用jquery基于单击事件的条件执行多个功能。
这是我的代码:
$(document).ready( function (){
var Acco_head = $('#Dashbordacco > li > a');
var Acco_body = $('#Dashbordacco > li > div');
Acco_head.first().addClass('active').next().show();
Acco_head.on('click', function(event){
if(myScroll != undefined || myScroll != null) {
refreshScroller(myScroll);
}
event.preventDefault();
if ($(this).attr('class') != 'active'){
Acco_body.slideUp('normal');
if ($(this).attr('class') = 'UE') {
callPortfolioDataUrl(PortfolioDataUrl)
}
$(this).next().stop(true,true).slideToggle('normal');
Acco_head.removeClass('active');
$(this).addClass('active');
}
});
});
这是HTML: -
<li class="UE"><a href="#">Upcoming Events</a>
<div id="indexdata2">
</div></li>
但它会抛出一个错误:“赋值的左侧不是引用。”
任何帮助?
使用comparison operator
if ($(this).attr('class') === 'UE') {
而不是Assignment operator
。
if ($(this).attr('class') = 'UE') {
尝试,
$(document).ready( function (){
var Acco_head = $('#Dashbordacco > li > a');
var Acco_body = $('#Dashbordacco > li > div');
Acco_head.first().addClass('active').next().show();
Acco_head.on('click', function(event){
if(myScroll != undefined || myScroll != null) {
refreshScroller(myScroll);
}
event.preventDefault();
if ($(this).hasClass('active')){
Acco_body.slideUp('normal');
if ($(this).hasClass('UE')) {
callPortfolioDataUrl(PortfolioDataUrl)
}
$(this).next().stop(true,true).slideToggle('normal');
Acco_head.removeClass('active');
$(this).addClass('active');
}
});
});
编辑:
使用.hasClass('classname')
检查源元素是否具有特定类
以下是导致错误的分配:
if ($(this).attr('class') = 'UE') {
您应该使用比较运算符:
if ($(this).attr('class') == 'UE') {
在Javascript中,单个等于( =
)用作赋值运算符,而两个( ==
)或三个( ===
)用于比较。 ==
将在比较之前隐式转换类型,因此如果不进行类型转换, ===
会更好。 要解决您的问题,请更改:
if ($(this).attr('class') = 'UE') {
对此:
if ($(this).attr('class') === 'UE') {
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.