【发布时间】:2010-11-04 19:30:33
【问题描述】:
我正在开发一个严重依赖 jQuery 进行用户交互的应用程序。
(如果您的浏览器不支持 jQuery,请升级或不要使用我的应用程序 :)
通常,具有从表中获取、设置和删除数据的函数。
在我的应用程序中,我在不重新加载页面的情况下获取和设置大量信息。为此,我主要使用 jQuery.post。
我的 JS 文件中的典型代码如下所示:
jQuery.post("mypath/jquery_getset_data.php", { instance: 'getItems_A', itemID: itemID_value},
function(data) {
populateItemList(data);
});
jquery_getset_data.php 包含许多 if 语句:
if($_POST['instance'] == 'getItems_A'){
// PHP code to get and process data from MySQL DB
}
if($_POST['instance'] == 'setItems_A'){
// PHP code to process and insert data to MySQL DB
}
这是我的问题:
js文件和jquery_getset_data.php交互是不是更好?
如何在 createStoreList 中动态调用不同的“删除项目”函数?请参阅更新 1。
更新 1: 这是我用来创建许多不同列表的代码。
function createStoreList(data)
{
var ul = jQuery("<ul/>");
// We need to build the html structure in order for this to be registered in DOM.
// If we don't, jQuery events like .click, .change etc. will not work.
for (var i = 0; i < data.length; i++)
{
ul.append(
jQuery("<li/>")
.attr("id", "listItem_"+data[i].id)
.append(jQuery("<span/>")
.addClass("btnRemoveItem")
.attr("title", "Remove store from list")
.attr("id", data[i].id)
.click(function() { removeItemA(this); })
)
.append(data[i].name + ', ' + data[i].street)
);
}
return ul;
}
更新 2 我想我可以使用 switch 语句。我已经测试过了,它可以工作。
.click(function() {
switch(instance)
{
case 'removeListItemA': removeListItemA(this); break;
case 'removeListItemA': removeListItemB(this); break;
case 'removeListItemA': removeListItemC(this); break;
}
})
【问题讨论】:
-
也许您应该发布“几乎相同的代码”的示例?顺便说一句,您没有在笑脸附近嵌套括号,这违反了极客代码:它应该显示为“或不使用我的应用程序:))”:D :D
-
+1 表示“如果您的浏览器不支持 jQuery,则升级或不要使用我的应用程序”。 :-)