2014-10-19 2 views
0

У меня есть следующие функции для переключения «добавить в корзину» кнопкуJQuery это возвращение странно ответ

function addOrRemoveFromCart(){ 
    alert($(this).val) 
    if ($(this).hasClass("add_to_cart")){ 
     alert('yes'); 
     $(this).prop('value', 'Remove from Cart'); 
     $(this).removeClass("add_to_cart"); 
     $(this).addClass("remove_from_cart"); 
    } 
    else{ 
     alert('no'); 
     $(this).prop('value', 'Add to Cart'); 
     $(this).addClass("add_to_cart"); 
     $(this).removeClass("remove_from_cart"); 
    } 
} 

и это моя кнопка

<input id="069874" class="add_to_cart button" type="button" onclick="addOrRemoveFromCart()" value="Add To Cart"> 

$(this).hasClass("add_to_cart") возвращается ложное

$(this).val возвращает очень длинный вывод, который не имеет ничего общего со значением

ответ

1

.val функция

Вызов $(this).val(), чтобы получить значение

1

Вам необходимо настроить эту функцию как привязку для кнопки «добавить в корзину».

Поэтому:

$('add_to_cart').on('click', function(){ 
    if ($(this).hasClass("add_to_cart")){ 
     alert('yes'); 
     $(this).prop('value', 'Remove from Cart'); 
     $(this).removeClass("add_to_cart"); 
     $(this).addClass("remove_from_cart"); 
    } 
    else{ 
     alert('no'); 
     $(this).prop('value', 'Add to Cart'); 
     $(this).addClass("add_to_cart"); 
     $(this).removeClass("remove_from_cart"); 
    } 
return false; // or preventdefault 
} 
}); 

Также - идентификатор этого элемента не является действительным. Идентификатор элемента в html не может начинаться с цифры.


Редактировать: Обратите внимание, что использование встроенных атрибутов onclick считается плохой практикой и его следует избегать.

+0

'вал()' является функцией не свойство и идентификаторы могут быть числовыми в html5 спецификации – charlietfl

+0

я удалил эту строку - Я скопировал его с оригинального сообщения. – Esse

+0

благодаря изменению встроенного значения –

0

попробовать

<input id="069874" class="add_to_cart button" type="button" onclick="addOrRemoveFromCart.call(this)" value="Add To Cart"> 

$(this).val оповещает код функции. Вы должны это назвать! Изменения в $(this).val()

Смежные вопросы