代码之家  ›  专栏  ›  技术社区  ›  user48408

对事件调用多个javascript函数

  •  1
  • user48408  · 技术社区  · 15 年前

    我正在使用AjaxControlToolkit,并尝试调用选项卡更改事件上的两个函数。

    我想从我的onClientActiveTabChanged函数调用多个JS函数,但一直收到错误

    Webpage error details
    
    User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR      1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET     CLR 3.0.4506.2152; .NET CLR 3.5.30729)
    Timestamp: Tue, 24 Nov 2009 12:31:43 UTC
    
    
    Message: Expected '}'
    Line: 202
    Char: 181
    Code: 0
    URI: http://localhost/.../.../....aspx?ID=1000&propertyFrameWidth=1234&propertyFrameHeight=603&userId=9&employeeId=526&CCId=2&DbConnTag=TSDBConnection
    

    更新,我刚刚注意到,即使对于基本的警报语句,也会发生这种情况。

    OnClientActiveTabChanged="alert('testone');alert('testtwo');"
    

    给出问题的行:

    Sys.Application.add_init(
    function() 
    {
        $create(AjaxControlToolkit.TabContainer, 
                {
                 "activeTabIndex":0, 
                 "clientStateField":$get("ctrlJobPropertiesView_tbcTabContainer_ClientState")
                },
                {
                 "activeTabChanged":alert('testone');alert('testtwo');
                },
                null, 
                $get("ctrlJobPropertiesView_tbcTabContainer")
            );
    });
    
    4 回复  |  直到 13 年前
        1
  •  3
  •   Community Dan Abramov    7 年前

    盲截图:尝试用匿名函数包装它,比如:

    "activeTabChanged":function() { alert('testone');alert('testtwo'); }
    

    编辑 :我的解决了问题, gs S是最完整的。

        2
  •  0
  •   Georg Schölly Crazy Developer    15 年前

    这是你的问题:

    {"activeTabChanged":alert('testone');alert('testtwo');}
    

    我猜你想要的是 activeTabChanged 是一个函数,但是 alert("something") 不返回函数,但什么都不返回。

    在字典中分号的语法错误。要将函数赋给 活动标签已更改 :

    "activeTabChanged":function() { alert("testone"); alert("testtwo"); }
    

    您不需要使用匿名函数。你也可以用普通的。

    function on_activeTabChanged() {
         // do something
    }
    
    // much later in the code
    $create(AjaxControlToolkit.TabContainer,
            {"activeTabChanged":on_activeTabChanged});
    
        3
  •  0
  •   Amarghosh    15 年前

    把它们放在引号里

    "activeTabChanged":"alert('testone');alert('testtwo')";
    
        4
  •  0
  •   Jason Plank IEnumerator    13 年前

    尝试使用这个:

    function callMultiple() {
       func1();
       func2();
       func3();
    }
    
    OnClientActiveTabChanged="callMultiple"