Это происходит потому, что при загрузке страницы in-cart-button
еще нет на странице, поэтому обработчик не подключается.
Просто используйте одну функцию с toggleClass()
.
function toggleItem(event) {
$("#" + t_id).toggleClass("add-button in-cart-button");
}
$("a.add-button").click(function(event) {
event.preventDefault();
toggleItem(event.target.id);
});
Другие варианты - использовать .toggle()
вместо .click()
, который принимает 2 (или более) функции.
Кроме того, вы можете просто передать ссылку на функцию как .click()
обработчик, и все еще имеет доступ к объекту event
.
function toggleItem( event ) {
event.preventDefault();
var $target = $("#" + event.target.id);
$target.toggleClass("add-button in-cart-button");
if( $target.hasClass('in-cart-button') )
alert("Remove item with id: " + t_id);
}
$("a.add-button").click(toggleItem);