gpt4 book ai didi

javascript - jquery 小部件 - 未捕获的类型错误 : Object [object Object] has no method

转载 作者:行者123 更新时间:2023-11-29 22:14:08 25 4
gpt4 key购买 nike

当我尝试调用我的小部件时出现错误

Uncaught TypeError: Object [object Object] has no method 'koSpreadSheet' 

我的插件

(function ($) {

//Create spreadsheet app
$.widget('koSpreadSheet', {
//Default values for options
options: {

},

//Call Constructor
_create: function () {
this._CreateTable();
},

//Function to Render Table
_CreateTable: function () {
$.each(data.info[0], function (key, value) {
console.log(data.info[0]);
if ($.isNumeric(value)) {
if (jQuery.inArray(key, Equationlhs) === -1) {
html += "<td><input type='text' class='numericData' data-bind='value:" + key + "'></td>";
head += "<th class='variableHeading header-row' id= '" + key + "' title='Click to bind Equation'>" + key + "</th>";
list += "<li class='ui-state-default'>" + key + "</li>";
} else {
html += "<td><input type='text' class='numericData' readonly='readonly' data-bind='value:" + key + "'></td>";
head += "<th class='variableHeading header-row' id= '" + key + "' title='" + Equationlhs + "'>" + key + " (F)</th>";
list += "<li class='ui-state-default'>" + key + " (F)</li>";
}

} else {
html += "<td><span data-bind='text:" + key + "'/></td>";
head += "<th class='header-row'>" + key + "</th>";
}
});

var checklist = "<input type='checkbox' id='readonlyCheckbox'><span> Check to make fields ReadOnly</span></br>";
checklist += "<input type='checkbox' id='viewonlyCheckbox'><span> Check for ViewOnly</span></br>";

$("body").prepend(checklist);
$("#div1 thead").append(head);
$("#div1 tbody").append("<tr></tr>");
$("#div1 tbody tr").append(html);
}
});
})(jQuery);

我的 HTML

<html>

<head>
<script src="http://ajax.aspnetcdn.com/ajax/knockout/knockout-2.2.1.js"></script>
<script src="knockout.mapping-latest.js"></script>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script>
<script src="testPlugin.js"></script>
<script type="text/javascript">
$(document).ready(function () {

var data = {
"info": [{
"Name": "Noob Here1",
"Department": "Language",
"Sex": "Male",
"Basic_Salary": "300000",
"ESI": "58",
"Employee_PF": "60.50",
"Bonus": "2.60",
"Salary": "0",
"Tax": "0",
"Gross_Salary": "0"
}
]
}
var EquationData = {
'eqn': [{
'Salary': 'Basic_Salary - ( ESI * .5 ) - Employee_PF + Bonus',
'Tax': '( Salary < 200000) ? 0: (( Salary < 300000) ? (.15* Salary ) : ( Salary * .30))',
'Gross_Salary': '( Salary - Tax )'
}
]
}

EquationData = EquationData["eqn"][0];

$.each(EquationData, function (lhs, rhs) {
Equationlhs.push(lhs);
})

$('#div1').koSpreadSheet(); //koSpreadSheet is name of widget

$(document).tooltip();

});
</script>
</head>

<body>
<table id="div1">
<thead></thead>
<tbody data-bind="foreach: info"></tbody>
</table>
</body>

</html>

如何解决这个问题

最佳答案

有多个错误:

  • 最重要的是放一个namespace,在目前的情况下我在名字前面使用了custom。所以你的情况应该是:$.widget('custom.koSpreadSheet');

There is currently a limitation that exactly one namespace must be used. [ Learn JQuery]

  • 注意初始化过程,这样您就不会得到 undefined variable 。我在调试时遇到问题的变量:
    • 数据
    • 方程式
    • html
    • 列表

我只是用默认值初始化了所有东西并使它们全局可用,但是你应该对它们的初始化过程有一个细粒度的控制。

这是 working example基于您的代码。

关于javascript - jquery 小部件 - 未捕获的类型错误 : Object [object Object] has no method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16230736/

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