javascript - 单击按钮 -> 保留颜色 - 这可能使用数组吗?

标签 javascript css ajax ejs

使用 php/ejs 脚本;我想要一个按钮在单击后保留其悬停颜色。该脚本在 Ajax 上运行,因此页面不会刷新。

我的颜色保留功能可以正常工作,但无论我点击哪个按钮,它都默认为空白 (0)/“数量”类。

我还尝试对 ID 进行硬编码以区分类,但没有成功。

来自模板文件/ejs;我当前的代码:

<% _.each(model.information_amounts, function(info) { %>
        <div class="classBlock"> 
                <button type="button" name="info" value="<%= info.amount ? info.amount : '' %>" id="info" class="amount"><%= info.name %></button>
        </div>
<% }) %>

^^ 这遍历一组数组并显示所有按钮选项。

尝试过:

<% _.each(model.information_amounts, function(info) { %>            
      <div class="classBlock"> 
                <button type="button" name="info" value="<%= info.amount ? info.amount : '' %>" id="info" class="amount<%= info.id %>"><%= info.name %></button>            
      </div> 
<% }) %>

[ 并为 amount1 等硬编码样式表类。 ]

当前样式表:

 .amount {
     background-color:#c0c0c0;
}
.amount:hover, .amount:focus,.chosen {
     background-color:#000;
}

还在common.js中直接尝试了ajax:

$('#info').on('click',function(){
    $(this).toggleClass('chosen');
});

不确定它是否与问题相关,但这是 js 事件:

    events: {
        'click button#info': 'updateInfo',
},

更新: 试过这个,没有用。因为模板包装在 EJS 中,我是否需要做一些特殊的事情才能让它工作?我的意思是,js 翻转和颜色变化是非常基本的。不确定为什么这不起作用。

样式表:

  .amount1 {
     background-color:#c0c0c0;
  }
  .chosen1, .amount1:hover {
       background-color:#000;
  }

常见的.js 是的,它是从页面调用的。控制台没有错误:

 $('.amount').on('click',function(){
    $(this).toggleClass('.chosen1');
});

来自 EJS 模板的按钮输入:

<button type="button" name="info" value="<%= info.amount ? info.amount : '' %>" id="info" class="amount<%= info.id %>"><%= info.name %></button>

最佳答案

您正在寻找伪类:visited。将其作为选择器放入您的 CSS 中,并复制您在 :hover

中使用的颜色

MDN

关于javascript - 单击按钮 -> 保留颜色 - 这可能使用数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41817400/

相关文章:

jquery - 根据内容展开背景图片

javascript - 重写ajax jquery调用coffeescript

javascript - 通过javascript设置iframe marginheight ="0"

javascript - 如何使用 jquery 将输入复制到子输入?

javascript - 范围价格计算

javascript - 是否可以使用 JavaScript 或 jquery 将 HTML 页面保存为 PDF?

css - 当我在 CSS 中旋转时,如何将我的文本放在一行中

html - 垂直居中的 div 包含在 float 的 div 中

javascript - XML .attributes 不起作用

Javascript:如何制作:当用户按下 Enter 键时,按下 Shift+Enter 即可进行内容编辑