有许多jQuery函数,可以与一些回调一起用作参数。 例如:
$('#id').draggable({
create: function( event, ui ) {
// triggered when the draggable is created
},
start: function( event, ui ) {
// triggered when dragging starts
}
...
});
有人可以解释一下,如何正确创建这样的功能?如何做自己“创造”或“开始”等事件?感谢。
答案 0 :(得分:0)
您可以使用匿名函数(如示例中所示)或传递存储在object / variable中的函数。这取决于你是否需要使用这样的回调一次。
$('#id').draggable({
create: function( event, ui ) {
// triggered when the draggable is created
},
stop: function (event, ui) {
controller.stop(event.element);
}
start: scope.functionName
...
});
至于我,我更喜欢创建接口,而我正在使用匿名函数将执行委托给需要参数的正确API调用。有时开销很小,但允许创建统一的接口,而不考虑如何在事件回调中的范围内实现它们。
答案 1 :(得分:0)
这些功能由正常变量表示 在纯JavaScript中,这看起来像这样:
function test(aFunction){
if ( typeof aFunction == "undefined" ) return null;
if ( typeof aFunction == "function" ) aFunction();
}
test(function(){ alert("Hello!"); });
这将导致显示“Hello!”的警报。在JSON-Object({})中,您只需遍历内部的所有元素。
function test(someObject){
if ( typeof someObject != "object" ) return null;
for ( var i in someObject )
if ( someObject.hasOwnProperty(i) && typeof someObject[i] == "function") someObject[i]();
}
test({
a: function() { alert("Hi!"); },
b: function() { alert("Hello."); }
});
此示例将生成两个警报,一个显示“嗨!”,另一个显示“Hello。”。