Jquery插件发送值回调函数



我有一个jquery插件
假设显示alert
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:如何将回调函数放在选项中?

应该是

$(".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);

最新更新