2014-03-19 134 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/ –

相关问题