var dt = function(){return {
        datatable: this,
        url: $(this).attr("url"),
        optiondata: "",
        ispage: $(this).attr("ispage"),
        load: function () {
            console.log(this.datatable);
        }
    }}
    $.fn.dt = dt;

解决方案 »

  1.   

    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
    </head>
    <body>
    <div id="test" url="aa">123</div>
    <script type="text/javascript" src="../js/jquery-1.11.1.js"></script>
    <script type="text/javascript">
        var dt = function(){
            var me=this;
            return {
                datatable: me,
                url: $(me).attr("url"),
                optiondata: "",
                ispage: $(me).attr("ispage"),
                load: function () {
                    console.log(this.url);
                }
            }
        }
        $.fn.dt = dt;
        $('div').dt().load();
    </script>
    </body>
    </html>
      

  2.   

    总觉的好别扭。
    dt 分明不是dom需要的方法,何必非要绑在$.fn.
      

  3.   

    还不如自定定义一个类得了,jquery插件不是这样写的。。你那样写无法链式调用jquery对象    $.fn.dt = function (cfg) {
            return this.each(function () {
                var dt = {
                    datatable: this,
                    url: $(this).attr("url"),
                    optiondata: "",
                    ispage: $(this).attr("ispage"),
                    load: function () {
                        console.log(this.datatable);
                    }
                };
                if (typeof cfg == 'string' && dt[cfg]) dt[cfg]();
            });
        };
        $('div').eq(0).dt('load');