首页 > 解决方案 > 获取动态调用jquery函数的元素宽度

问题描述

我正在使用这个名为jquery-splitflap 的函数。

这是我的 HTML 代码:

<div class="do-splitflap"></div>

<script>
    (function ($) {
        $(document).ready(function () {
            $('.do-splitflap')
                    .splitFlap();
        });
    })(jQuery);
</script>

在 js/jquery 文件中,如何获取调用函数的 div 的宽度.splitFlap()?我目前正在使用this.divWidth = $(".do-splitflap").width();它并且工作正常,但我不想将 classNamedo-splitflap放在 js 文件中。有没有办法动态获取函数调用者的宽度?我对 jquery/js 很陌生。

我认为有用的js文件的jquery部分是

    /***************************************************************************
     * SplitFlap
     **************************************************************************/

    function SplitFlap(settings) {
        this.settings = settings;

        this.domObject = document.createElement('div');
        this.letters = new Array();

        $(this.domObject).addClass("splitflap");

        /* CODE I ADDED */
        this.divWidth = $(".do-splitflap").width();
    }

我相信这是定义函数的地方,但我不是 100% 确定

            this.splitflap = new SplitFlap(settings);
            this.splitflap.build(text.length);

这是 jquery 插件的演示

标签: javascripthtmljquerycss

解决方案


我能够弄清楚.width在 js 文件中的确切位置。

$.fn.splitFlap = function (options) {
...
    var divWidth = this.width();
...
        this.splitflap = new SplitFlap(settings, divWidth);
...
    /***************************************************************************
     * SplitFlap
     **************************************************************************/

    function SplitFlap(settings, divWidth) {
        this.settings = settings;

        this.domObject = document.createElement('div');
        this.letters = new Array();

        $(this.domObject).addClass("splitflap");

        /* CODE I ADDED */
        this.divWidth = divWidth;
    }

这是非常基本的 jquery/js。我今天早些时候只是愚蠢的。


推荐阅读