从这个JQuery插件中获取价值

时间:2015-06-19 13:01:57

标签: javascript jquery jquery-plugins

我最近一直在尝试编写JQuery插件,我确信这是一个非常简单的问题。但是,我似乎无法在我的插件中获得一个值。

例如,我有以下代码:

plugin.js

$(function($) {
  $.fn.myPlugin = function() {
    // alert the id from main.js
  }
});

main.js

$(document).ready(function() {
  $('#someDIV').attr('id').myPlugin();
});

3 个答案:

答案 0 :(得分:2)

您无法在string上定义插件。使用selector来调用插件。

查看this

像这样使用:

(function ($) {
    $.fn.myPlugin = function () {
        this.each(function () {
            // Allow multiple element selectors
            alert(this.attr('id'));
        });

        return this; // Allow Chaining
    }
} (jQuery));

$('.myClass').myPlugin();

DEMO

Tutorial

答案 1 :(得分:0)

试试这个:

int ImgId = getResources().getIdentifier("test1", "drawable", getPackageName());
Photo=new LinearLayout(this);
lp = new LinearLayout.LayoutParams(Width/2,Width/2);
Photo.setLayoutParams(lp);
Photo.setOrientation(LinearLayout.VERTICAL);
Photo.setBackgroundColor(getResources().getColor(R.color.mainGreen));
Img = new ImageView(this);
lp = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);
Img.setLayoutParams(lp);
Img.setBackgroundColor(getResources().getColor(R.color.Black));
Img.setImageResource(ImgId);
Photo.addView(Img);

见这里:http://jsfiddle.net/1cgub37y/1/

答案 2 :(得分:0)

您应该只将对象传递到您的jQuery扩展函数(而不是对象的ID),如下面或this fiddle中所示(将警告“someDIV”onload):

// jQuery extension
// The object passed into jQuery extension will occupy keyword "this"
$(function($) {
  $.fn.myPlugin = function() {
      // Get the ID (or some other attr) of the object.
      var id = $(this).attr("id");

      // Now do something with it :)
      alert(id);
  }
});

$(document).ready(function() {
  $('#someDIV').myPlugin();
});