我有一个简单的jquery插件。当我传递一个值时它工作正常。但是当函数返回值时不起作用。它显示了功能防御。
请在Jsfiddle
中试试(function ( $ ) {
$.fn.greenify = function( options ) {
var settings = $.extend({
// These are the defaults.
color: "#556b2f",
backgroundColor: "white",
selectedID:function(){}
}, options );
alert(settings.selectedID);
};
}( jQuery ));
//Plugin Call
$( "div" ).greenify({
color: "orange",
//selectedID:6 it is working fine
selectedID:function (){return 5}
});
答案 0 :(得分:4)
当您调用alert()
时,您正在将函数引用传递给alert(settings.selectedID)
,而您需要调用settings.selectedID
引用的函数并将其返回的值传递给alert()
}
所以试试
alert(settings.selectedID());
演示:Fiddle
答案 1 :(得分:0)
您在这里缺少"()"
alert(settings.selectedID);
理想情况下,您必须调用该函数才能正常工作
alert(settings.selectedID());
答案 2 :(得分:0)
settings.selectedID是一个函数
alert(settings.selectedID());