gpt4 book ai didi

javascript - Bootstrap 弹出窗口在对象中不起作用

转载 作者:行者123 更新时间:2023-12-03 12:21:22 25 4
gpt4 key购买 nike

我正在尝试制作自己的 js 类来进行表格网格调整(隐藏列),但我的弹出按钮不起作用。

当我在页面上使用所有这些功能时,它可以工作,但是当我放入原型(prototype)时,它会失败。

这是我的grid.js:

function Grid(element, tableId, module){
return this.init(element, tableId, module);
};

Grid.prototype = {

grid: [],

element: "",

popover: null,

tableId: "",

module: "",

backEndURL: location.href,

formId: "#grid_form",

wrapper: "#grid_entities",

init: function(element, tableId, module){

this.element = element;
this.tableId = tableId;
this.module = module;

this.initButton();
this.addOnClickListner();


},

initButton: function(){

this.popover = $(this.element).popover({
placement: "bottom",
html: true,
content: this.getPopoverContent()
});

},
...

Index.php:

<div id="filterButtons">
<i class="left iconfilter" id="filterButton" data-toggle="popover"></i>
<i class="left iconlayout" id="gridButton" data-toggle="popover"></i>
</div>
...
<script>
$(document).ready(function () {
var grid = new Grid(...);
});
</script>

Grid.js 也包含在页面底部。

最佳答案

我没有看到您的 addOnClickListener,但我怀疑这是 this 的问题。您的构造函数不应返回任何内容。所以你可以做这样的事情:

function Grid(element, tableId, module){
this.init(element, tableId, module);
};

Grid.prototype = {
//...
constructor:Grid,
addOnClickListner:function(){
var me = this;
return function(e){
//e is the event, e.target is the clicked element
//me is the Grid instance
console.log("button clicked, e is:",e," and this is:"
,this," and me is:",me);
me.whateverYouHaveInOnClickListener();
}
}

错误会很有帮助,在 Chrome 或 Firefox(安装了 Firebug 插件)中按 F12 并查看控制台中是否有任何错误。执行 console.log 来查看变量的值。

有关原型(prototype)、构造函数和 this 值的更多信息,请参阅 here .

关于javascript - Bootstrap 弹出窗口在对象中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24429417/

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