私の人生はわかりません。なぜなら、次のクリックをクリックして次のボタンをクリックすると、関数を呼び出すと、一度のインスタンスでは動作しますが、別のインスタンスでは動作しません。
$ slideNumberは1 2 3または4の値を持ちますが、これは私に警告を使用して知らせています。
基本的にはrotate()をトリガーしません。 2番目のもので
クリック数は1つが完全に動作します。
//Paging + Slider Function
rotate = function() {
var triggerID = $slideNumber - 1; //Get number of times to slide
var image_reelPosition = triggerID * divWidth; //Determines the distance the image reel needs to slide
//Slider Animation
$(".image_reel").animate({
left: -image_reelPosition
}, 500);
};
//click on numbers (this one works)
$(".paging a").click(function() {
$active = $(this); //Activate the clicked paging
$slideNumber = $active.attr("rel");
rotate(); //Trigger rotation immediately
return false; //Prevent browser jump to link anchor
});
//click on next button (this one does not work)
$('#next').click(function() {
var left_indent = parseInt($('.image_reel').css('left')) - divWidth;
var slideNumberOn = (left_indent/divWidth);
var slideNumber = ((slideNumberOn * -1) + 1);
$slideNumber = slideNumber;
rotate(); //Trigger rotation immediately
return false; //Prevent browser jump to link anchor
});
HTML:divWidth
と$slideNumber
が#next
クリックハンドラ内で定義されている
<div class="paging">
<a href="#" rel="1">one</a>
<a href="#" rel="2">two</a>
<a href="#" rel="3">three</a>
<a href="#" rel="4">for</a>
</div>
<div class="nav">
<a id="prev" class="active" href="#">prev</a>
<a id="next" class="active" href="#">next</a>
</div>
1)動作していないインスタンスが呼び出されており、2) '$ slideNumber'が正しい値を保持していることを確認できますか? – Dutchie432
グローバル変数を使って作業することは、ほとんど常に悪い考えです。パラメータとして '$ slideNumber'と' divWidth'を渡すべきです。 –
機能しないと、関数が呼び出されないという意味ですか?次のボタンのhtmlはどのように見えますか? –