gpt4 book ai didi

javascript - Javascript 函数和 this 参数的一些问题

转载 作者:行者123 更新时间:2023-11-30 05:42:30 25 4
gpt4 key购买 nike

我正在为我的弹出窗口使用 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)) 的问题在于,它会在您将其绑定(bind)到 onOpen 时运行 p.showPopup 函数.您想要的是它在触发 onOpen 事件时运行。使用

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

代替

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

关于javascript - Javascript 函数和 this 参数的一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19963177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com