#javascript #jquery
#javascript #jquery
Вопрос:
Я пытаюсь подсчитать количество нажатий по кнопке, и я хочу добавить оператор if else, если .kisi-sayi-text
значение равно = 0, не добавляйте, но в моем коде ничего не произошло
HTML
<div class="count-box yetiskin-count">
<span class="count-text">Yetişkin:</span>
<span class="kisi-down"></span>
<span class="kisi-sayi-text">1</span>
<span class="kisi-up"></span>
</div>
JQUERY
$('.yetiskin-count > .kisi-up').on("click",function(){
var topParents = $(this).parents(".yetiskin-count"),
kisiSayiText = topParents.find(".kisi-sayi-text"),
kisiSayiNumber = kisiSayiText.html(parseInt($(".kisi-sayi-text").html()) 1);
if(kisiSayiNumber<0){
return false;
}
});
Комментарии:
1. Используйте этот простой код jsfiddle.net/8wss6b58
Ответ №1:
Проблема, с которой вы столкнулись, заключается не в .kisi-up
событии щелчка, вам следует посмотреть на обработчик .kisi-down
щелчка, поскольку он обрабатывает вычитание, поэтому он прекратит вычитание, когда достигнет 0.
$('.yetiskin-count > .kisi-up').on("click",function(){
var topParents = $(this).parents(".yetiskin-count"),
kisiSayiText = topParents.find(".kisi-sayi-text"),
kisiSayiNumber = parseInt($(".kisi-sayi-text").html());
kisiSayiText.html(kisiSayiNumber 1);
});
$('.yetiskin-count > .kisi-down').on("click",function(){
var topParents = $(this).parents(".yetiskin-count"),
kisiSayiText = topParents.find(".kisi-sayi-text"),
kisiSayiNumber = parseInt($(".kisi-sayi-text").html());
if(kisiSayiNumber <= 0){
return false;
}
kisiSayiText.html(kisiSayiNumber - 1);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="count-box yetiskin-count">
<span class="count-text">Yetişkin:</span>
<span class="kisi-down">amp;<</span>
<span class="kisi-sayi-text">1</span>
<span class="kisi-up">amp;></span>
</div>
Сравните это:
$('.yetiskin-count > .kisi-up').on("click",function(){
var topParents = $(this).parents(".yetiskin-count"),
kisiSayiText = topParents.find(".kisi-sayi-text"),
kisiSayiNumber = kisiSayiText.html(parseInt($(".kisi-sayi-text").html()) 1);
// kisiSayiNumber is a jQuery object, not a number so there is no point comparing it with 0
if(kisiSayiNumber<0){
return false;
}
});
с помощью этого:
$('.yetiskin-count > .kisi-up').on("click",function(){
var topParents = $(this).parents(".yetiskin-count"),
kisiSayiText = topParents.find(".kisi-sayi-text"),
kisiSayiNumber = parseInt(kisiSayiText.html());
// if the current running number is less than or equal to 0 then don't add
if (kisiSayiNumber <= 0)
return false;
kisiSayiText.html(kisiSayiNumber 1);
});
Комментарии:
1. но я предполагаю, что есть какая-то проблема, если мое число равно 0, если я хочу добавить, после этого ничего не произошло
2. извините, но вы должны уточнить, каков ваш ожидаемый результат, например, это число только от 0 до положительной бесконечности?
3. нет, я имею в виду, что если я хочу сложения, оно должно быть добавлено, если я хочу вычитания, оно должно быть увеличено до 0
4. Я добавил фрагмент кода, который может быть тем, что вы собираетесь делать
Ответ №2:
Пожалуйста, замените эту строку
kisiSayiNumber = kisiSayiText.html(parseInt($(".kisi-sayi-text").html()) 1);
с помощью
kisiSayiNumber = kisiSayiText.html(parseInt($(".kisi-sayi-text").text()) 1);
и я начну сложение так, как вы хотите
Комментарии:
1. Хотя технически это лучше, это не повлияет на результат и не повлияет на то, что хочет сделать OP
2. Сначала его синтаксис исправляется, и я публикую полный ответ, хотя
Ответ №3:
Проблема в вашем <span class="kisi-up"></span>
.. Попробуйте поместить некоторые данные.
Например
<span class="kisi-up">Click Me</span>
Потому что вы не можете щелкнуть интервал kisi-up
$('.yetiskin-count > .kisi-up').on("click",function(){
var topParents = $(this).parents(".yetiskin-count"),
kisiSayiText = topParents.find(".kisi-sayi-text"),
kisiSayiNumber = kisiSayiText.html(parseInt($(".kisi-sayi-text").html()) 1);
if(kisiSayiNumber<0){
return false;
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="count-box yetiskin-count">
<span class="count-text">Yetişkin:</span>
<span class="kisi-down"></span>
<span class="kisi-sayi-text">1</span>
<span class="kisi-up">Click Me</span>
</div>
Ответ №4:
$('.yetiskin-count > .kisi-up').on("click",function(){
var topParents = $(this).parents(".yetiskin-count");
var kisiSayiText = topParents.find(".kisi-sayi-text");
if($(".kisi-sayi-text").html()<=0){
return false;
};
kisiSayiNumber = kisiSayiText.html(parseInt($(".kisi-sayi-text").html()) 1);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="count-box yetiskin-count">
<span class="count-text">Yetişkin:</span>
<span class="kisi-down"></span>
<span class="kisi-sayi-text">1</span>
<span class="kisi-up">click here</span>
</div>
привет, вам нужно иметь некоторый контент в теге span, на который нужно нажать, и убедиться, что вы включили библиотеку jQuery. вы можете запустить фрагмент для проверки функциональности. я надеюсь, что это решит вашу проблему. счастливого кодирования!!!
Комментарии:
1. этот код работает при условии меньше или равно нулю