繁体   English   中英

Javascript函数和此参数的一些问题

[英]Some problems with Javascript functions and this argument

我正在使用colorbox弹出窗口...

这很好。

$(".show_popup").colorbox({inline:true, width:"800px", onOpen: function() {
   type = $(this).attr('type);
   ....
}

但是我想多次使用我的内部函数,所以我想使其成为模块函数。

});

(function ($,a) {
 var p = {
   showPopup: function (popup_type) { 
    ...
   },

   bindEvents: function () {
       $(".show_popup").colorbox({inline:true, width:"800px", onOpen: p.showPopup($(this).attr('type')) }); 
   }
...
}
a.Popups = p;
})(jQuery);

但这不起作用-这是$(this) -函数仅在页面加载后执行一次。

(function ($,a) {
  var p = {
   showPopup: function (popup_type) { 
    ...
   },

   bindEvents: function () {
       $(".show_popup").colorbox({inline:true, width:"800px", onOpen: p.showPopup }); 
   }
...
}
a.Popups = p;

})(jQuery);

当然这也不起作用,但是执行了很多次。 那你能帮我知道怎么回事吗?

onOpen: p.showPopup($(this).attr('type))的问题onOpen: p.showPopup($(this).attr('type))是在将其绑定到onOpen时将运行p.showPopup-function。 您想要的是它在触发onOpen事件时运行。 采用

onOpen: function() { p.showPopup($(this).attr('type')); }

代替

(edit)假设已定义p.showPopup,我在您的代码中看不到它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM