这可能是有史以来最奇怪的JavaScript问题:
$('div.GiftContainer').live('click', function () {
var self = $(this);
var price = $(this).attr('data-price');
if (!self.hasClass('selected')) {
if (price <= MyCredits) { // always returns true
alert('OK');
self.addClass('selected').siblings().removeClass('selected');
} else {
alert('MOO!');
}
} else {
self.removeClass('selected');
}
});
即使我在条件和价格小于MyCredits之前添加console.log(price + ' ' + MyCredits);
,也会返回true。
它可能是什么......
答案 0 :(得分:2)
尝试parseInt()。这应该解决它,以确保它们被JS正确解释。
答案 1 :(得分:0)
JavaScript中有类型。这可能会让人感到困惑,因为它是一种动态语言。请尝试以下操作以确保两个值均为numbers
:
if (parseInt(price, 10) <= parseInt(MyCredits, 10))
以下是一些更多信息:http://en.wikibooks.org/wiki/JavaScript/Variables_and_Types
答案 2 :(得分:-1)
价格小于MyCredits
那么price <= MyCredits
就是这样。所以没有错。