我有一个jquery插件
假设显示警报
html页面为
<html>
<head>
<script src='jquery.js'></script>
<script src='myPlugin.js'></script>
<script>
$().ready(function(){
$(".txt").my-plugin({},function(e){
alert(e.a +" "+ e.b);
});
});
</script>
</head>
<body>
<input type='text' class='txt' />
<input type='text' class='txt' />
<input type='text' class='txt' />
</body>
</html>
我的插件如下
;(function ($) {
$.fn.myPlugin = function (options,callback) {
var defaultVal = {
vars:'values'
};
var obj = $.extend(defaultVal, options);//overwrite default values if there
return this.each(function(){
//my other code
$(this).click(function(){
//my code
var a="some value";
var b="more values";
if (typeof callback == 'function')
{
callback.call($(this));//how can I send var a,b here
}
});
})
};
})(jQuery);
Q1:如何从插件中发送要在回调函数中访问的值?
我必须发送属性值
Q2:如何在选项中放置回调函数?
答案 0 :(得分:2)
应该是
$(".txt").alamStar({},function(e){
alert(e.a +" "+ e.b);
});
因为函数名称是alamStar
...
这里有一些调整
$(function(){
$(".txt").alamStar({
callback: function(e){
alert(e.a +" "+ e.b);
}
});
});
;(function ($) {
$.fn.alamStar = function (options) {
var defaultVal = {
vars: 'values',
callback: null
};
var defaultVal = $.extend(defaultVal, options);//overwrite default values if there
return this.each(function(){
//my other code
$(this).click(function(){
//my code
var a="some value";
var b="more values";
if (typeof defaultVal.callback == 'function')
defaultVal.callback({a:a, b:b});//how can I send var a,b here
});
})
};
})(jQuery);