jquery插件shwing $ .pluginName未定义

时间:2015-09-08 14:38:07

标签: javascript jquery-plugins

我正在编写一个代码来将HTML元素添加为jQuery插件。检查下面的代码:

$.dw_inactive = function( options ){    
    var settings = $.extend({
                backgroundColor: "#000",
                interval: 1000,
                startTime: 1000,
            }, options );

        var dw_inactive_counter = 0;
        setTimeout("dw_inactive_check", settings.startTime);

        $.fn.dw_inactive_check = function(settings){
            if(!$("body").has("div."+settings.className))
            {
                $("body").add("div").attr("class",settings.className).css({"background-color":settings.backgroundColor});
            }
            setInterval("dw_inactive_check", settings.interval);    
        }
    }
    $.dw_inactive({backgroundColor:"#fff"});

它无效,显示$.dw_inactive未定义。这段代码有什么问题? 提前致谢

2 个答案:

答案 0 :(得分:0)

你可以试试这个:

function($){
    $.dw_inactive = function( options ){    
        var settings = $.extend({
                backgroundColor: "#000",
                interval: 1000,
                startTime: 1000,
            }, options );

        var dw_inactive_counter = 0;
        setTimeout("dw_inactive_check", settings.startTime);

        $.fn.dw_inactive_check = function(settings){
            if(!$("body").has("div."+settings.className))
            {
                $("body").add("div").attr("class",settings.className).css({"background-color":settings.backgroundColor});
            }
            setInterval("dw_inactive_check", settings.interval);    
        }
    }
}

答案 1 :(得分:0)

基本上你声明的是:

$.fn.dw_inactive_check = function(settings){

你要申报的是:

$.fn.dw_inactive = function(settings){

如果你想这样使用它:

$.dw_inactive({backgroundColor:"#fff"});

这就是为什么它说它未定义,因为它不是同一个名字