我在這裏有我的小提琴,但我不明白爲什麼它不會在'onmouseout'事件上調用我的函數。 http://jsfiddle.net/foreyez/Xf6LW/JsFiddle上的鼠標事件不起作用?
有什麼想法嗎?
我在這裏有我的小提琴,但我不明白爲什麼它不會在'onmouseout'事件上調用我的函數。 http://jsfiddle.net/foreyez/Xf6LW/JsFiddle上的鼠標事件不起作用?
有什麼想法嗎?
工作正常,您只需將該函數放置在文檔頭部(或元素在DOM之後的主體)。
這是因爲當你有選擇的onLoad選項,則在JavaScript面板創建功能不是全球性的。你的JavaScript被封裝在一個函數中。
如果你想他們是全球性的,你必須要麼做什麼j08961建議,通過改變下拉說不包(身體或頭部)將工作
最好的解決辦法是不設置您的活動來自HTML的處理程序,無論如何這都是不好的做法,那麼你不會依賴全局函數或混合HTML和JS。
<div id="myDiv">
</div>
document.getElementById('myDiv').onmousemove = function() {
alert('here');
}
注意:你應該注意到控制檯中的錯誤,說myFunc是未定義的或類似的東西。
我認爲這是jsfiddle的原因,它聲明瞭HTML之後的所有javascript。 HTML將會運行並尋找myFunc
,但找不到它。然後它會加載JS,它甚至不會運行它。
不是真的,在HTML之後轉換函數不是問題。問題是jsfiddle默認使用匿名函數來包裝它。請閱讀我的和j08691的回答以獲得清晰的解釋 –
Ahh感謝您的澄清。是的,我剛剛讀過它們。 – aug
使myFunc成爲全局函數;
我用螢火蟲搜尋我的代碼,並得到以下生成的代碼。
window.addEvent('load', function() {
//window.myFunc makes myFunc as a global function
// It can be accessed from any were inside current window.
window.myFunc = function myFunc(x)
{
alert('yo');
}
// function below is not available gloably.
function myFunct1(){
alert('yo1');
}
});
看到jsfiddle
在這裏你可以看到的變化:jsfiddle.
便宜的方式,使它的工作不知道問題是什麼 –
這裏的東西是使它的工作,它並不重要。是否有用? :P –
這是一種天真的編碼和解決問題的方式。如果你一直這麼想,你的解決方案總是很脆弱。 「是否有用?」讓你聽起來像你不在乎使其正常工作。 –
http://jsfiddle.net/Xf6LW/4/ – Shmiddty
設置你的框架: 「NOWRAP(頭)」,並來自javascript窗格的腳本將被追加到頭部的空腳本標記中。 – Shmiddty