2015-04-21 142 views
-2

如何运行我的功能关()直播()没有去除功能范围干扰。就绪()功能范围与我的功能

<form id="1" name="first-form"> 
    <p> 
     <input type="button" value="Submit 1" onClick="Off();"> 
    </p> 
</form> 

<form id="2" name="second-form"> 
    <p> 
     <input type="button" value="Submit 2" onClick="Live();"> 
    </p> 
</form> 

我的JS代码如下:

$(document).ready(function(){ 
    function Off(){ 
     alert('off'); 
    } 

    function Live(){ 
     alert('live'); 
    } 
}); 
+2

为什么DOM中的这两个函数准备就绪? –

+2

将函数放在'.ready'之外有什么问题? – leopik

+0

我不会推荐,你可以使用'window.Off = function()'而不是'function Off()'来更好地将你的函数移动到'.ready'之外。 – Satpal

回答

0

的评论者提出您应该将这些功能移出范围。但是,如果这是不可能的,你可以添加函数到一个对象(所以你没有大量的变量来污染全局范围)并导出它;那么只需更改点击事件所调用的函数的名称即可。

的JavaScript

$(document).ready(function() { 

    window.module = { 
     Off: function() { 
     alert('off'); 
     }, 
     Live: function() { 
     alert('live'); 
     } 
    } 

}); 

HTML

<input type="button" value="Submit 1" onClick="module.Off();" /> 
<input type="button" value="Submit 2" onClick="module.Live();" /> 

DEMO

严重的是,这远非最佳的解决方案,但它确实回答你的问题,我想。

0

如果你把你的处理程序中的HTML那么你funtion必须是全球性的,尝试删除功能齐全:

function Off(){ 
    alert('off'); 
} 

function Live(){ 
    alert('live'); 
}