javascript - 创建一个基本的 jquery 插件

标签 javascript jquery

我是 jQuery 插件的新手,我已经关注了这个 Tutorial并通过以下代码摆脱困境:

  if (!($(this).attr('data-mobHigh') === undefined)) {
   $(this).attr("src", $(this).attr("data-mobHigh"));
  }

我正在像这样初始化插件

        $('img').mezzaraine();

我不知道第二个 $(this) 引用如何更改为 img,因为我向插件提供了参数 img第二行:

  $(this).attr("src", $(this).attr("data-mobHigh"));

this-(html 属性)也更改为 img。我需要使用 this 而不是“img”。

如何做到这一点?

最佳答案

您可以将this存储为局部变量。

$.fn.mezzaraine = function() {
    var $imgs = this;
    $imgs.each(function(i, img) {
        var $img = $(img); // wrap with $ if you want to chain jQuery methods

        // things you are going to do
    });
}

然后重用该变量,而不是每次都用 $ 包装。

if($img.attr('data-mobHigh') !== undefined) {
    $img.attr("src", $img.attr("data-mobHigh"));
}

此外,当您使用数据集时,jQuery 提供了更好的 API

if($img.data('mobHigh') !== undefined) {
    $img.attr("src", $img.data("mobHigh"));
}

关于javascript - 创建一个基本的 jquery 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27229946/

相关文章:

javascript - 保留通过 JavaScript 客户端的身份验证?

javascript - Data-qtip 在鼠标悬停时显示远离组件

javascript - 提交时关闭 iFrame fancybox 的问题

javascript - 激活滚动功能

javascript - 使用 angular.js ui 和 bootstrap typeahead 进行异步调用以检索搜索的自动建议

jquery - 如何使用 jQuery 在表中创建子组?

javascript - 使用名称初始化 ng-app 会禁用变量初始化

javascript - 分组然后过滤

javascript - 我可以让 Chrome 更具错误描述性吗?

javascript - Jquery ui 自动完成未显示,但显示在浏览器控制台上