jquery插件通过函数返回传递值

时间:2013-10-18 06:29:48

标签: javascript jquery jquery-plugins

我有一个简单的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}
});

3 个答案:

答案 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());