0

チェックボックスのクリックを追跡してliのクラスを変更し、JavaScriptオブジェクトの値を更新する別の関数をトリガーしています。最初は機能しますが、リスト内のチェックボックスのいずれかをフォローアップでクリックしても何も生成されません。

クラス変更の最後に .checkboxradio("refresh") を追加すると、ボックスとクラス変更は再び機能しますが、オブジェクトは更新されません。

$(".goals").delegate("input[type=checkbox]", "click", function() {
  goalguid = $(this).parent().parent().data("goalguid");
  emailGoal = $(this).parent().data('goal');
  if ($(this).prop("checked")) {
    $(this).parent().parent().removeClass("inprogress missed").addClass("completed").prop("checked", true);
    updateStatus = 'completed';
    return updateTheGoal();
  } else {
    $(this).parent().parent().removeClass("completed").addClass("inprogress").prop("checked", false);
    updateStatus = 'inprogress';
    return updateTheGoal();
  }
});

updateTheGoal = function() {
  var goalList;
  $.each(goals, function(i, el) {
    if (el.goalguid === goalguid) {
      el.status = updateStatus;
      return false;
    }
  });
  localStorage.setItem("goals", JSON.stringify(goals));
  goalList = $.grep(goals, function(e) {
    return e.userguid === userguid;
  });
  localStorage.setItem(userguid + "Goals", JSON.stringify(goalList));
  logSummary();
  return displayMyGoalList();
};

私の推測では、オブジェクトの更新機能を実行すると、何らかの形で他のクリックが妨げられていると思いますが、そこにたどり着くことができませんでした。

どんな助けでも大歓迎です。

4

0 に答える 0