如何编写一个jquery插件,带传入函数的功能

happydaily 2014-03-17 06:57:37
RT,请给一个范例代码,谢谢~
...全文
142 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
keatkeat1987 2014-03-18
  • 打赏
  • 举报
回复

 (function ($) {
            $.extend($.fn, {           
                myMethod: function (fn, args) {                  
                    //this是全部select 回来的jquery对象集合
                    //用.each loop
                    this.each(function (index, value) {
                        //这里可以写逻辑了                       
                        var value = this.value;  //这里的this是dom 
                        fn(value, this); //调用传进来的方法                      
                    });
                    return this;//把jquery对象集合在返回出去,这样可以连续引用 
                }
            });
        })(jQuery);    
        $(function () {
            $("#inputtext").myMethod(function (value, elem) {
                alert(value);
            }, "args").remove();
        });
happydaily 2014-03-18
  • 打赏
  • 举报
回复
感谢各位的热心解答!
RightNowYang 2014-03-18
  • 打赏
  • 举报
回复
http://www.iteye.com/topic/545971 这个很不错 基本是把英文教程翻译过来了 对插件的教学挺全了
zhjdg 2014-03-17
  • 打赏
  • 举报
回复
明确一下,应该这样写
function fn(v1,v2){
		var that = this;  
		
	}	
	
	$.fn.myMethod = function(fn,v1,v2){
		return  this.each(function(k,v){
			//fn(v1,v2)   //this is window;
			$.proxy(fn,this)(v1,v2);  //this is the element
		})
	}
	
	$("div").myMethod(fn);
zhjdg 2014-03-17
  • 打赏
  • 举报
回复
	function fn(){
		var i=0;
		var arg = arguments;
		this.style.backgroundColor = 'red';
		this.innerText = 'can change ' + (++i) + 'arg1:' + arg[0] + 'arg2' + arg[1];
	}
	
	$.fn.myMethod = function(fn,arg1,arg2){
		var args = [].slice.call(arguments,1);
		this.each(fn,args);				
		return this;
	}
	$("div").myMethod(fn,'aa','bb');

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧