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

最佳答案

调用alert()时,您正在传递对alert(settings.selectedID)的函数引用,相反,您需要调用settings.selectedID所引用的函数,并将其返回的值传递给alert()

所以尝试

alert(settings.selectedID());


演示:Fiddle

10-02 16:29