#javascript
#javascript
Вопрос:
Я пытаюсь отключить мою кнопку слайдера javascript / jquery, когда она достигает конца прокрутки изображений (когда изображения полностью переместились вправо, кнопка moveRight должна быть деактивирована и оставить активной только кнопку moveLeft, то же самое для кнопки move leftButton), кто-нибудь может помочь с этим? Я не уверен, правильно ли я использую .attr () и removeAttr (). Я вставил свой код ниже.
<script type="text/javascript">
$(document).ready(function(){
//Check width of Gallery div
var galleryWidth = $("#Gallery").innerWidth();
//Check width of GalleryItem
var NoListed = $("ul.GalleryItem li").length;
var galleryItemWidth = 1881;
$('.MoveRight')
$('.GalleryItem').css('width', galleryItemWidth);
//Check width of Gallery div on resize
$(window).resize(function(){
var galleryWidth = $("#Gallery").innerWidth();
});
$('.MoveLeft').click(function() {
$(".GalleryItem2").animate({"left": "-=350px"}, "slow");
$(".GalleryItem3").animate({"left": "-=280px"}, "slow");
$(".GalleryItem").animate({
left: '-=230',
}, "slow", function() {
position = $(".GalleryItem").position();
galleryItemLeft = position.left;
if(galleryItemLeft <= galleryWidth - galleryItemWidth) {
$('.MoveLeft').removeAttr('disabled');}
else{
$('.MoveLeft').attr('disabled','disabled');
$('.MoveRight').attr('disabled','disabled');
}
});
});
$('.MoveRight').click(function() {
$(".GalleryItem2").animate({"left": " =350px"}, "slow");
$(".GalleryItem3").animate({"left": " =280px"}, "slow");
$(".GalleryItem").animate({
left: ' =230',
}, "slow", function() {
position = $(".GalleryItem").position();
galleryItemLeft = position.left;
if(galleryItemLeft >= "0") {
$('.MoveLeft').removeAttr('disabled');}
else{
$('.MoveLeft').attr('disabled','disabled');
$('.MoveRight').attr('disabled','disabled');
}
});
});
});
</script>
Комментарии:
1. Итак, каков именно ваш результат сейчас?
2. он скользит влево и вправо, но ни одна кнопка не деактивируется при выполнении условия.
Ответ №1:
Окей, для начала уберите эту запятую;
left: '-=230',
-------------^
и добавить px здесь
left: '-=230px'
------------^
затем попробуйте добавить это;
if(galleryItemLeft <= 0) {
return false;
}
сразу после $('.MoveLeft').click(function() {
и то же самое для правильного
Комментарии:
1. Спасибо, Йохан. Это не влияет на слайдер. Вы имеете в виду поместить условие выше внутри функции или ниже (после) нее? Есть еще идеи?
2. непосредственно перед началом скольжения, таким образом, функция вернется и пропустит оставшуюся часть блока
3. Когда я добавляю туда условие, это приводит к тому, что слайдер перестает работать, он больше не скользит. Есть идеи, почему?
4. это то, что возвращает false, значит, что-то не так с вашим условием в операторе if
5. Правильно ли я использую .removeAttr (‘disabled’);} и .removeAttr (‘disabled’);} ?