我有插件,它有返回方向(如:顶部,左边..)哪一边你输入元素。问题是 - 插件在一些超时后执行的一个函数,所以当我调用插件 - 显然它返回我未定义。在没有回调函数的jQuery插件中延迟执行后返回结果?
;(function($){
jQuery.fn.myplugin = function(options){
var somefunction = function(){
setTimeout(function(elem, e){
return elem * e; // some action, no matter
}, 500) // the important thing - it's executed after plugin returned undefined
}
return someFunction;
};
})(jQuery);
有没有可能解决这个问题,而不使用回调函数,或者在这种情况下是必要的?
我想用户插件像
var direction = $('elem').myplugin();
但回调,这应该是
$('elem').myplugin({
callback: function(direction){
// so i got direction here
}
})
看起来不那么漂亮了
你真的想解决什么问题? Javascript不能做你想问的问题。 – jfriend00 2013-03-18 23:00:28
我正在编写插件以确定您输入或离开元素的哪一侧(mouseenter,mouseleave事件)。并且在确定离开方向的函数中,我绑定一次到WINDOW鼠标移动事件,以获得光标坐标。看起来像这个绑定执行几毫秒后插件返回空结果。 我会用回调 – Denis 2013-03-18 23:10:18