您现在的位置是:主页 > news > 网站如何制作学校的做/网上商城网站开发
网站如何制作学校的做/网上商城网站开发
admin2025/6/15 7:40:47【news】
简介网站如何制作学校的做,网上商城网站开发,网站建设公司发展前景,软件技术基础问题描述 开发一个 jquery 插件,监听 input 、select 元素,根据 其值 或者 其值 发生变化时,执行回调函数。 jquery 插件模板如下: ;(function($){$.fn.myPluginName function(options, callback) {var defaults {param1: &q…
网站如何制作学校的做,网上商城网站开发,网站建设公司发展前景,软件技术基础问题描述
开发一个 jquery 插件,监听 input 、select 元素,根据 其值 或者 其值 发生变化时,执行回调函数。
jquery 插件模板如下:
;(function($){$.fn.myPluginName function(options, callback) {var defaults {param1: &q…
问题描述
开发一个 jquery 插件,监听 input 、select 元素,根据 其值 或者 其值 发生变化时,执行回调函数。
jquery 插件模板如下:
;(function($){$.fn.myPluginName = function(options, callback) {var defaults = {param1: "aaa",param2: "bbb"};var settings = $.extend(true, {}, defaults, options);return this.each(function(){ // some plugin works .. callback(); });};
})(jQuery);
我写的回调函数:
;(function($) {$.fn.listenValue = function(callback) {return this.each(function() {var $this = $(this);//在页面加载完毕后,立即执行回调函数if (typeof(callback) == 'function') {callback();}// 监听值有变化时,执行回调函数$this.bind('input propertychange change',function(){if (typeof(callback) == 'function') {callback();}})});};
})(jQuery);
在下面使用时,出现问题。
$("#xxxx").listenValue(function(){var vv= $(this).val();console.log(vv)
})
$("#xxxx")
调用 listenValue
方法时,在回调函数中,第二行的 this
代码会报错, this
不存在,无法使用 this
。
经过调试发现 this
不是指向 xxxx
元素,而是指向的是 window
。
解决方法
调用 回调函数,应该使用 callback.apply(this)
,使 回调函数
指定绑定的 当前元素
。具体如下:
jquery 插件模板改进 如下:
;(function($){$.fn.myPluginName = function(options, callback) {var defaults = {param1: "aaa",param2: "bbb"};var settings = $.extend(true, {}, defaults, options);return this.each(function(){ // some plugin works .. callback.apply(this, [options]); });};
})(jQuery);
使用方式:
$('p').myPluginName( {thing: "thing1"} , function(opts){alert(opts.thing);
});
我写的回调函数改进如下:
;(function($) {$.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);}})});};
})(jQuery);
调用如下,
$("#xxxx").listenValue(function(){var vv= $(this).val();console.log(vv)
})
可以使用 $(this)
,不报错,并且 $(this)
指向的是 $("#xxxx")
。
参考: https://www.it1352.com/1755368.html