2015-01-27 2 views
0

У меня есть приложение списка дел с полной/неполной кнопкой для задач. Я хочу переключиться между изменением класса кнопки и значения кнопки при нажатии на нее. Я получаю кнопку, чтобы изменить первый клик, но последующие клики на ту же кнопку не изменяют кнопку. Я проверил свои журналы и метод todo # update вызывается после первого щелчка, но, похоже, он не запускает мой javascript-код в update.js.erb после первого щелчка.Файл update.js.erb запускается только при первом нажатии кнопки, а не при последующих щелчках (изменить класс и значение кнопки при щелчке)

В моем файле update.js.erb:

// change color 
$("#todo-button-<%[email protected]_id%>").attr('class', "<%=button_class%>"); 

// change button text 
$("#todo-button-<%[email protected]_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"]}"%> 

ответ

0

Я в конечном итоге решить это с помощью функции щелчка вместо этого. Мой код более подробный, чем я хотел, но работает:

$('.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"); 
    } 
}); 
Смежные вопросы