2014-03-19 97 views
-3

我的代碼:運行匿名函數的另一個函數內部

function myFunc(callback) { /*do stuff*/ 
    $('div').one('mouseover', function() { 
     alert('mouseover'); 
     callback; 
    }); 
} 
$("div").click(function() { 
    alert('clicked'); 
    myFunc(function() { 
     alert('Callback'); 
    }); 
}); 

然而,callback不執行,也沒有在控制檯中的錯誤。我該如何做這項工作?

小提琴:http://jsfiddle.net/8Z66u/

+3

'callback();'。如果您不調用該函數,則不會執行該函數。函數基礎:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Functions#Calling_functions –

+1

http://jsfiddle.net/arunpjohny/8Z66u/1/ - 使用'console.log( )'而不是'alert()'用於調試 –

+0

@ArunPJohny我通常會這樣做,但這是一小段代碼。 – GiantDuck

回答

6

你忘記帶()

function myFunc(callback) { /*do stuff*/ 
    $('div').one('mouseover', function() { 
     alert('mouseover'); 
     callback(); // invoke 
    }); 
} 

援引沒有(),你剛剛到了函數的引用callback但這樣做有它無動作,所以行基本上什麼都不做。

+0

我想你的意思是'.on('mouseover''而不是'.one('mouseover ''。 – Anonymous

+4

@Anonymous我只想讓它執行一次。 – GiantDuck

+2

@匿名http://api.jquery.com/one/ –

相關問題