jQuery 扩展带参数的方法?

标签 jquery html extend

使用以下 jQuery:

jQuery.fn.extend({
    resizelis: function(xWidth) {
      var mButtons = this.length;
      var buttonSize = (xWidth / mButtons);
        return this.each(function() {
            this.css("width", buttonSize + "px");
            this.children("a").css("width", buttonSize + "px");
        });
    }
});

我使用这样的方法:

var $width = $window.scrolltop() > $("#header_image").outerHeight() ? .92 * $(window).width() : .92 * $(".content").width();
$(".menu").children("li").resizelis($width);

HTML

<ul class="menu">
    <li class="current"><a accesskey="1" href="index.html">Home</a></li>
    <li><a accesskey="2" href="highlights.html">Highlights</a></li>
    <li><a accesskey="3" href="agenda.html">Agenda</a></li>
    <li><a accesskey="4" href="tracks.html">Tracks</a></li>
    <li><a accesskey="5" href="sponsors.html">Sponsors / Exhibits</a></li>
    <li><a accesskey="6" href="travel.html">Travel</a></li>
    <li><a accesskey="7" href="register.html">Register</a></li>
</ul>

但这给了我一个错误。我到底做错了什么?谢谢。

最佳答案

在调试您的代码时,我发现在扩展方法中您使用 this 而不是 $(this),并且您尝试将 css 方法与 this,它不是 jQuery 对象。尝试将 this 更改为 $(this),然后重试:

jQuery.fn.extend({
    resizelis: function(xWidth) {
      var mButtons = this.length; //same as with the jquery object $(this)
      var buttonSize = (xWidth / mButtons);
        return $(this).each(function() 
       {
            $(this).css("width", buttonSize + "px");
            $(this).children("a").css("width", buttonSize + "px");
        });
    }
});

each循环内,this是一个HTMLLIElement,要使用css方法,请使用$(this).

关于jQuery 扩展带参数的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18723726/

相关文章:

jquery - 将 DIV 更改为 "position:fixed"然后将其更改回 "static"并显示其余的 DIV

javascript - onclick onclick 位于其他内部的元素上,也被 onclick 使用

jquery - 当文本在 flash 或 jquery 谷歌地图上滚动时,固定 div 中的文本字体粗细会发生变化,为什么以及如何处理它?

Scala,扩展迭代器

jquery - 对每个产品使用 .each() 一次来插入新价格

javascript - 使用 highcharts 在同一页面上显示向下钻取图和漏斗图

javascript - 当我执行 loc.innerHTML = xhr.responseText 时,为什么浏览器会自动将我的responseText 用双引号引起来?

javascript - 我可以在网页上添加从 Highcharts 函数获取的数据吗?

java - 是否可以在 Java 8 中扩展枚举?

django - 你能在 django 中引用多个基本模板吗?