2

我正在做一个关于基本 jQuery 插件的教程。我花了很长时间试图弄清楚为什么我的代码没有改变我的<p></p>.

该练习说要创建一个插件,该插件将设置传入元素的高度,而无需使用.height().

虽然下面的迷你插件不会改变高度,但如果我简单地将height属性翻转.css()到类似它的东西margin就可以完美地工作。

我错过了什么?

<body>
    <p>Hello</p>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script>
        (function($, window, document, undefined) {
            $.fn.setHeight = function(hgt) {
                return this.each(function() {
                    $(this).css('height', hgt);
                });
            };
        })(jQuery, window, document);
    </script>
    <script>
        $("p").setHeight(200)
    </script>
</body>
4

1 回答 1

1

我会在这里做两件事:

首先,我会确保将标记的display属性显式设置为or ,以防万一这在其他地方被修改。pdisplay:inline-blockdisplay:block

其次,这是更重要的部分,将hgt传递给插件的高度值更改为附加单位(、、等)pxpt字符串。em

祝你好运,如果您有任何其他问题/问题,请告诉我!:)


更新

让我们从简化插件开始。试试这个,让我知道结果是什么:

(function($, window, document, undefined) {
    $.fn.setHeight = function(hgt) {
        $(this).css('height', hgt);
    };
})(jQuery, window, document);

这是一个更新的小提琴

于 2013-04-10T23:06:43.213 回答