使用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;
}
common.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>
答案 0 :(得分:0)
您正在寻找伪类:visited
。将它作为选择器放入CSS中,然后复制:hover
答案 1 :(得分:0)
这就是发生的事情: - 正在刷新元素。 - 我不得不在php中操作会话,以便将'true'变量传递回EJS,以便获得正确的按钮来保留其颜色。
对于那些感兴趣的人,这就是我的所作所为: - 在php中添加了一个会话变量来捕获按钮值:
$this->session->data['selectedamount'] = $this->session->data['amount'];
在EJS中:
<%
if(model.successes.selectedamount !== info.amount){
var chosenclass ='amount';
}else{
var chosenclass ='chosen';
}
%>
<button type="button" name="info" value="<%= info.amount ? info.amount : '' %>" id="info" class="<%= chosenclass %>"></button>