繁体   English   中英

单击事件的多个功能

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM