2015-04-21 252 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'); 
}