JavaScript 在单击时更改 div "array"的颜色?

标签 javascript jquery css forms colors

我想创建一个调查问卷,其中用户有一定数量的分数,他们可以将这些分数分配给不同的类别。分配因用户而异。 分配点应通过以下方式实现:

  1. 点数显示为框数组( float div 或表格 tds。哪个更好?)。未花费的点数以橙色显示,已花费的点数以石灰/绿色显示。

  2. 用户可以点击任何橙色框来指示他接下来要分配多少点。从左侧到(包括)单击框的所有橙色框都以黄色突出显示。突出显示框的数量存储在隐藏的表单字段中。

  3. 用户现在点击他想要分配点数的类别/元素。通过单击元素,元素名称、(2) 中的数字和其他表单内容将通过 AJAX 发送到处理数据库内容的脚本。突出显示的黄色框现在变为绿色并且计数器已更新。

例子:

example

我可以处理 AJAX 的东西,但是我不知道如何处理选择/突出显示“技工”。我的基本想法是:有一个变量 points_spent 从 0 开始,每次花费点数时都会增加(duh)。这些框是具有处理颜色的不同 CSS 类(box_spent、box_highlight、box_avaibale)的 div。

一个 JavaScript 正在检查 points_spent 的值,并将 ID 为 box_1 的 div 类更改为 box_nbox_spent

第二个 JavaScript 是通过点击一个框来触发的。它检查点击是否有效(即在橙色或黄色框上)并相应地照亮这些框...

但是我如何使用 JS 来做到这一点?我不会用 PHP 来做这件事,但是对于用户来说,每次点击后都要等待是很可怕的:/

非常感谢任何帮助!

最佳答案

你可以这样做:

$('.box_highlight,.box_available').click(function(e) {
   $clicked = $(e.target);

   // Highlight box that was just clicked
   $clicked.addClass('box_highlight').removeClass('box_available');

   // Find all elements to the left that aren't already spent and highlight them.
   $clicked.prevAll('.box_available').addClass('box_highlight').removeClass('box_available');

   // Remove highlight of any boxes to the right
   $clicked.nextAll('.box_highlight').removeClass('box_highlight').addClass('box_available');
});

$('.category').click(function(e){

   // The container of the clicked category
   $categoryEl = $(e.target);

   // Determine which category was clicked.
   var category = $categoryEl.html();
   var points = currentPointValue();
   var highlighted = $('#box_container').find('.box_highlight');

   $.post({
      /* Your ajax options go here */
      data: {
         category: category,
         points: points
      },
      success: function() {
          $categoryEl.append(points);
          $highlighted.removeClass('box_highlight').addClass('box_spent');
      }
   });
});

var $boxContainer = $('#box_container');

function currentPointValue() {
   $boxContainer.find('.box_highlight').length;
}

关于JavaScript 在单击时更改 div "array"的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18513217/

相关文章:

javascript - 将多个 Nodejs 导出返回值分配给变量时出现问题

javascript - 如何执行 href 链接以及 anchor 标记 <a> 中的 onClick 函数

java - 请求不包含多部分/表单数据或多部分/混合流,内容类型 header 为 false

html - 菜单中央的 Logo 图像位置不正确

javascript - css 背景颜色在元素上不可见

css - :last-child vs specific specific id's

javascript - 在 Windows 8 中更改视频标签的来源

javascript - 添加 js 确认到 mailto 链接

javascript - 如何使用javascript获取文件夹中的文件列表

javascript - 为什么 jQuery 会删除我的 <img> 元素?