0

我不确定如何最好地用一个标题来描述我的问题,所以我希望这有点意义。

让我解释一下我想要做什么。我想创建一个任务列表小部件。用户在一个<input>字段中写下任务的描述,然后从<select>. 点击“提交!” 按钮,使用 jQuery 将新项目添加到下面的无序列表中,其中包含任务描述和点值。当用户点击列表中的某个项目时,它会被移除,并且其关联的点值会(动态地,再次使用 jQuery)添加到总分中,该总分显示在角落<div>的 a 中。fixed

我在制作表格或向列表中添加项目时没有任何问题。然而,让我感到困惑的是如何在单击任务时添加点值。

我觉得这是一个带有参数“name”和“pointValue”的Task对象可能有用的地方,但我无法完全弄清楚如何。当然,我可以制作对象,但是我如何以某种方式将它与添加到页面的 HTML 关联起来,以便在单击它时将其点值添加到总数中?或者这完全是错误的做法?

你可以在这里看到我目前的进展。就像我说的,我可以弄清楚如何让大多数事情发挥作用——只是积分系统不行。

任何和所有的帮助将不胜感激。我是 jQuery 和 JavaScript 的新手,所以如果我犯了愚蠢的错误,请尽量不要对我大发雷霆;)

谢谢。

4

2 回答 2

1

看到这个:http: //jsfiddle.net/8L25m/9/

 $(document).on('click', '.task', function () {
    $(this).hide('fast', function () {
        $this.remove();
    });
    $("#score").html(parseInt($("#score").html(),10) + parseInt($(this).find(".taskValue").html(),10));

});
于 2013-02-27T06:58:02.960 回答
0

另一个好的可以在 jsfiddle 找到:http: //jsfiddle.net/RWhitbeck/ZyYFG/

js(来自上面的源代码):

$(document).ready(function () {
    $('#button').click(function () {
        //save inputs as variables:
        var taskName = $('input[name=newTaskName]').val();
        var pointWorth = $('select[name=newTaskPoints]').val();

        //add a new list item for the task (and do it with spiffy animation)
        $('<li class="task"><div class="taskOuter"><div class="taskValue">+' + pointWorth + '</div><div class="taskDescription">' + taskName + '</div></div></li>')
            .hide().prependTo('#taskList').slideDown('fast');
    });

    //remove item (with spiffy animation) when clicked:
    $(document).on('click', '.task', function () {
        $(this).hide('fast', function () {
            $this.remove();
        });
        $("#score").html(parseInt($("#score").html(),10) + parseInt($(this).find(".taskValue").html(),10));
        //adding points happens somewhere in here but I'm completely baffled
    });
});
  • 有项目(下拉区域)
  • 项目有任务,带有复选框
于 2013-06-02T14:19:16.533 回答