我的 update.js.erb 文件仅在第一次单击按钮时运行,而不在后续单击时运行(单击时更改按钮的类和值)
My update.js.erb file only runs on the first button click and not on subsequent clicks (change a button's class and value on click)
我有一个待办事项列表应用程序,其中包含一个用于任务的完成/未完成按钮。 我想在单击按钮时更改按钮类和按钮值之间切换。 我得到按钮来更改第一次点击,但随后点击同一按钮不会改变按钮。 我检查了我的日志,第一次点击后调用了todo#update方法,但它似乎没有在第一次点击后在update.js.erb中运行我的javascript代码。
在我的更新.js.erb文件中:
// change color
$("#todo-button-<%=@todo_id%>").attr('class', "<%=button_class%>");
// change button text
$("#todo-button-<%=@todo_id%>").attr('value', "<%=button_status%>");
这是 index.html.erb 中的按钮
<%= button_to button_status,
update_todo_path( todo_id: todo["id"],
description: todo["description"],
is_complete: todo["is_complete"]
),
remote: true,
class: "#{button_class}",
id: "todo-button-#{todo["id"]}"%>
我最终通过使用单击函数来解决这个问题。 我的代码比我想要的更冗长,但有效:
$('.todo-button').click(function(){
if($(this).hasClass("btn-primary")){
$(this).removeClass("btn-primary");
$(this).addClass("btn-success");
$(this).val("Incomplete");
}else if($(this).hasClass("btn-success")){
$(this).removeClass("btn-success");
$(this).addClass("btn-primary");
$(this).val("Complete");
}
});
相关文章:
- 单击按钮前运行事件
- 单击链接时停止运行javascript
- 在单击事件中,第一次单击时激发代码一次,其余代码在所有单击时运行
- 在Node Webkit应用程序中从DOM单击按钮时运行批处理文件
- 计时器自动运行,而不是单击javascript按钮
- 运行“;非“;单击另一个函数中的函数仅一次
- 单击1个表单中的2个提交按钮中的1个时,如何运行脚本
- 在同一页面上单击按钮运行不同的代码
- 附加 jQuery 代码以在加载和按钮单击时运行
- 我需要在单击时运行两个函数.即使嵌套在一起,我也无法让它们都工作
- 如何制作按钮.单击“开始时不运行”
- 如何加载一个html页面并在其中只需单击一次即可运行函数
- 每次用户单击按钮时运行if语句检查器
- 运行Javascript更改RadioButtonList单击时的值
- 第二次单击时,使用JQUERY运行另一个函数
- 使用运行时创建的链接来触发ASP.Net中隐藏按钮的单击处理程序
- 单击javascript中的按钮运行python脚本
- 单击运行清除表单的JS函数的按钮后,视图无法恢复
- 单击运行两次
- jquery.单击“运行无事件函数”