相关疑难解决方法(0)

406
推荐指数
9
解决办法
12万
查看次数

javascript语法:函数调用和使用括号

为什么这个工作..

<script type="text/javascript">
<!-- 

function myAlert(){
    alert('magic!!!');
}


if(document.addEventListener){   
    myForm.addEventListener('submit',myAlert,false); 
}else{   
    myForm.attachEvent('onsubmit',myAlert); 
}
// -->
</script>
Run Code Online (Sandbox Code Playgroud)

但不是这个????

<script type="text/javascript">
<!-- 

function myAlert(){
    alert('magic!!!');
}


if(document.addEventListener){   
    myForm.addEventListener('submit',myAlert(),false); 
}else{   
    myForm.attachEvent('onsubmit',myAlert()); 
}
// -->
</script>
Run Code Online (Sandbox Code Playgroud)

不同之处在于调用myAlert函数时使用括号.

我得到的错误..

"htmlfile:类型不匹配." 通过VS2008进行编译时.

javascript syntax

7
推荐指数
2
解决办法
9831
查看次数

关闭/范围JavaScript/jQuery

我正在尝试将一些现有的顶级函数组合在一个闭包中(以避免污染全局命名空间),但我并没有完全使用它.

首先,所有的JS都在我的匿名函数之外工作,但是一旦我把它放在匿名函数中,我得到一个错误"crossfade is not defined".有没有人看到我遗失的任何完全明显的东西?

我不太明白为什么setInterval/crossfade在匿名函数之外工作但不在内部.start()内部的任何内容应该能够看到start()之外的vars /函数,并且它应该在顶级匿名函数创建的闭包中受到保护吗?我不是想 crossfade()中访问任何东西,我只是想尝试执行它.

(function($) {

    //vars up here that internal functions can access
    //also using some jquery inside here, so using $

    function crossfade() {
        //body here
    }

    //other functions

    function start() {
        //body here

         cInterval = setInterval('crossfade()', 5000);
    } 

})(jQuery);
Run Code Online (Sandbox Code Playgroud)

javascript jquery closures scope function

5
推荐指数
2
解决办法
4143
查看次数