传递参数和为MYSQL集成准备代码的问题

时间:2012-07-24 04:35:25

标签: javascript jquery mysql parameter-passing

我已经在一个项目上工作了4天,完全是手工编写的,看看我在javascript的位置(我已经通过了codecademy课程)。我正在尝试创建一个基于浏览器的清单程序。到目前为止,我已经编写了一个可以动态创建<div>的干净菜单界面。

这就是我对jsfiddle的看法:
http://jsfiddle.net/SdCaf/1/

我的问题:

  • 我可以更有效地编写taskToggle()函数吗?是否有jquery方法来简化它?
  • 如果你有时间在小提琴中检查我的代码;它会轻易地使用mysql,还是我创建了一些愚蠢的冗余kludges,这会使更新变得困难?

  • 已修复 为什么我的formatTask()构造函数不会添加复选框和说明(如if / else中所示) - 我的错误是什么taskToggle()功能,是我要添加的复选框<div>,还是其他?

formatTask()构造函数:

function formatTask(target, divId, content, description, complete) {

    function taskToggle() {
        if ($(this).hasClass("completeTask")) {
            $("#" + divId).attr("class", "incompleteTask");
            $("#" + divId + "Box").attr("class", "incompleteBox");
        }
        else if ($(this).hasClass("incompleteTask")) {
            $("#" + divId).attr("class", "completeTask");
            $("#" + divId + "Box").attr("class", "completeBox");
        }
    };

    if (complete) {
        var div = new formatDiv(target, divId, "completeTask", content, taskToggle, description);
        formatDiv(divId, divId + "Box", "completeBox", "O");
        div.addDescription();
    }
    else {
        var div = new formatDiv(target, divId, "incompleteTask", content, taskToggle, description);
        formatDiv(divId, divId + "Box", "incompleteBox", "[ ]");
        div.addDescription();
    }
}

当我调用它时,它似乎接受了所有参数,并且我在控制台中没有出现任何错误,但它似乎没有运行formatDiv(divId, divId + "box", "completeBox", "O");div.addDescription。如果您点击小提琴的结果窗格中的“»显示列表”,您可以自己看到这一点(您将获得.addDescription()函数应该如何工作的示例)< / p>

您可能希望提供的任何其他反馈将非常感谢。我需要知道我是否在正确的轨道上,或者我是否开始编写将变得不优雅的垃圾代码。
感谢你的时间,如果你给它!

3 个答案:

答案 0 :(得分:1)

你确定当你这么说:

$("#" + divId).attr("class", "incompleteTask");

你不是这个意思吗?

$("#" + divId).addClass("incompleteTask");
$("#" + divId).removeClass("completeTask");

答案 1 :(得分:1)

这里的问题是您为任务分配的DOM ID是“atask!”这是无效的(因为!)字符。请确保您的ID和类名remove invalid characters

答案 2 :(得分:0)

从formatTask()中分离taskToggle(),然后像这样简单地调用formatTask()中的taskToggle()

function formatTask(target, divId, content, description, complete) {

 taskToggle();

 if (complete) {
    var div = new formatDiv(target, divId, "completeTask", content, taskToggle, description);
    formatDiv(divId, divId + "Box", "completeBox", "O");
    div.addDescription();
}
else {
    var div = new formatDiv(target, divId, "incompleteTask", content, taskToggle, description);
    formatDiv(divId, divId + "Box", "incompleteBox", "[ ]");
    div.addDescription();
}


}

function taskToggle() {
    if ($(this).hasClass("completeTask")) {
        $("#" + divId).attr("class", "incompleteTask");
        $("#" + divId + "Box").attr("class", "incompleteBox");
    }
    else if ($(this).hasClass("incompleteTask")) {
        $("#" + divId).attr("class", "completeTask");
        $("#" + divId + "Box").attr("class", "completeBox");
    }
};