Javascript呼叫差异

时间:2012-10-03 12:23:25

标签: javascript jquery internet-explorer

以下陈述之间有什么区别?

<tr onclick="javascript:class1.function1()">
<td>HideAlert</td>
</tr>

<tr onclick="class1.function1()">
<td>HideAlert</td>
</tr>

我使用第二种方法创建了一个网页,用于调用该函数并在Windows 2003 Server附带的Internet Explorer 6.0中进行了测试。该函数未被调用。当我在浏览器地址栏中给出“javascript:class1.function1()”时,该功能正常工作。用上述方法调用函数有什么不同吗?

脚本如下所示:

<script type="text/javascript">
var class1 = function(obj) {
this.val1 = obj.val1;
}
class1.function1 = function() {
$('#alertDiv').fadeOut('slow', function() {
});
</script>

jquery版本是1.4.2

2 个答案:

答案 0 :(得分:2)

在地址栏中(或在href属性中,或在常规URL可能出现的任何其他位置),javascript:是标识要在当前页面中运行的JavaScript的协议。

onclick属性(或任何其他脚本上下文)中,javascript:是一个可以像这样使用的标签:

javascript:
for( var i=0; i<100; i++) {
    while(true) {
        continue javascript;
    }
}
// bad example, but it works and doesn't cause an infinite loop!

换句话说,onclick="javascript:..."是不必要的。

答案 1 :(得分:0)

第一个版本有一个完全冗余的label

他们的行为应该是相同的。