0

我正在创建我的第一个 jQuery 插件来轻松获取所需的数据,而无需为不同的元素重复相同的脚本。我希望我的插件可以得到如下形式的东西:宽度、高度、位置和更多指定元素和他的父级(我需要他们稍后使用),格式如下:

$('element').myPlugin(); // will return all
$('element').myPlugin(width); // will return only width
$('element').myPlugin(width, height); // will return width and height

我不知道如何以正确的形式从插件中获取数据。我试图弄清楚但总是得到“未定义”或 [Object object] 结果。如果有人能给我举例说明我的“[[?]]”部分应该如何看,我将不胜感激:

(function($){
    $.fn.myPlugin = function(options) {

        var defaults = {
            width: this.width(),
            height: this.height(),
            parentWidth: this.parent().width(),
            [[more]]
        }
        var options = $.extend(defaults, options);

    return this.each(function () {

    var $this = $(this);

    [[?]]

    };
})(jQuery);
4

1 回答 1

0

one way to do this is to store the data into the element 'data object'. here is the code:

$.fn.myPlugin = function(options) {
    var defaults = {
        width: this.width(),
        height: this.height(),
        parentWidth: this.parent().width(),
        [[more]]
    }
    var options = $.extend(defaults, options);

    return this.each(function () {
        var $this = $(this);
        var dimen = {width: width, height: height, ..}

        $this.data('dimen', diemn);
    };
};

Now apply your plugin:

 $('selector').myPlaugin();

Later you can get the data:

 $('selector').data('dimen'); //will return the dimention object

There may be better ways to do this.

于 2013-04-14T20:24:51.887 回答