それぞれの.cont [i] onclickedに対して非表示のp [i]を表示したいと思います。各イベントは1回しか表示されません。
HTML構造:
$(document).ready(function() {
$("p").hide();
currentItem = 0;
currentCont = ".cont" + currentItem.toString();
mArrayList = ["a", "b", "c"];
currentArrayElement = mArrayList[currentItem];
$(currentCont).on("click", function(){
$(currentCont + " p").fadeIn(3000).html(currentArrayElement);
currentItem+=1;
});
});
が、予想通り第一oncklickた後、それが.cont1見つけることができません(:私はこのようなものを使用する方が良いだろうと思った。この目的のために
<div class="cont0">
<p></p>
</div>
<div class="cont1">
<p></p>
</div>
<div class="cont2">
<p></p>
</div>
私のために).. 私がここで見つけたものは1つだけです - 関数外の変数を再定義するために、私はこれを試しました:
nextCurrentItem = function nextCurrentItem() {
currentItem += 1;
currentArrayElement = mArrayList[currentItem];
};
changeCont = function changeCont() {
currentCont = ".cont" + currentItem.toString();
};
$(currentCont).on("click", function(){
$(currentCont + " p").delay(300).fadeIn(3000).html(currentArrayElement);
nextCurrentItem();
changeCont();
});
});
でも機能の動作は同じです。また、次のdivにクラス "selected"を追加/削除しようとしました。振る舞いは以前と同じです。
この問題を解決する方法をアドバイスできますか(イベントを呼び出すために各要素を1回クリックして)?
ありがとうございました!
currentContが一つだけのイベントハンドラを受け取る - 最初のdivになります。代わりに、すべてのdivに同じクラスを与えて、そのクラスに添付してください。 – mplungjan