jquery 自定义插件, 监听元素插件

Posted 猎人在吃肉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery 自定义插件, 监听元素插件相关的知识,希望对你有一定的参考价值。

1、开发场景说明

写一个 jquery 插件,有如下要求:

  • 能监听 input 、checkbox、radio、select 元素值的变化 ;
  • 有回调函数;
  • html 页面加载完毕后,能够立即执行回调函数;
  • 当 监听元素值发生变化时,能够立即执行回调函数。

如果没有第3条的要求,那么使用 onchangeonclick 的函数就能满足要求,这个插件没必要开发;

增加了第3条后,就要求在页面加载完毕后也能调用函数,函数里面的业务逻辑与 onchangeonclick 完全一样。代码完全重复了!

因此决定开发一个插件,既满足上面要求、又不让代码冗余。

2、插件

$.fn.listenValue = function(callback) 
    return this.each(function() 
        var $this = $(this);
        if (typeof(callback) == 'function') 
            callback.apply(this);
        
        $this.bind('input propertychange change',function()
            if (typeof(callback) == 'function') 
                callback.apply(this);
            
        )
    );
;

3、使用示例

$(function() 

	// 监听 input 、select 元素
	$("#deptId").listenValue(function() 
		var deptId = $(this).val();
		if(deptId=="1")
			//.......
		else if(deptId=="2")
			//.......
		else
			//.......
		
	);	
	
	
	// 监听 radio 元素
	$("[name='menuType']").listenValue(function()
		var menuType = $("[name='menuType']:checked").val();
		if(menuType=="1")
			//.......
		else if(menuType=="2")
			//.......
		else
			//.......
		
	)

);

以上是关于jquery 自定义插件, 监听元素插件的主要内容,如果未能解决你的问题,请参考以下文章

jquery 自定义插件, 监听元素插件

使用 jQuery 验证插件显示自定义元素和内容

如何在 jQuery 自定义插件中正确添加多个元素事件

强大的JQuery-自定义插件

jQuery $.fn.extend方式自定义插件

JQ插件机制