次のコードを使用して、特定のdivが存在するかどうかを確認します。それがなければ、適切な場所のdomに追加します。jqueryの追加とプリペンドに関する問題
if (!($("#col"+lastSlide).length))
{
$('#schDisplay').prepend('<div id="col' + (lastSlide) + '"></div>');
}
私の問題はとき、これは既に一度先頭に追加/追加されたdivのために再び声明をチェックした場合、それは私が追加のdivを見ていないということです。したがって、すでに追加/追加されたdivを引き続き追加します。
この問題を解決する方法はありますか?
よりコード:
//fillin added column
function fillElement(colnum)
{
var URL = 'schedule.php';
$("#col"+colnum).text("Loading...").show();
$.post(URL,{fecolnum: colnum},
function (data)
{
$("#col"+colnum).html(data).show();
});
}
//...irrelevant code...
// Create event listeners for .arrows clicks
$('.arrows')
.bind('click', function(){
numberOfSlides++;
// Determine new position
if ($(this).attr('id')=='arrow_right')
{
lastSlide++;
currentPosition++;
if (!($("#col"+lastSlide).length))
{
$('#schDisplay').append('<div id="col' + lastSlide + '" class="schColumn" style="float: left; width: ' +slideWidth+ 'px"></div>');
fillElement(lastSlide);
}
}
else
{
lastSlide--;
currentPosition--;
if (!($("#col"+lastSlide-2).length))
{
$('#schDisplay').prepend('<div id="col' + (lastSlide-2) + '" class="schColumn" style="float: left; width: ' +slideWidth+ 'px"></div>');
fillElement(lastSlide-2);
}
}
詳細を表示する必要があります。あなたの質問から「#col」+ lastSlideと「#schDisplay」がどのように関連しているかは分かりません。あなたが私に見せたことから、あなたが#schDisplayの前に置いたときに '#col' + lastSlideは変更されない可能性があります。 – Flimzy
情報が不十分です。関連コードを投稿してください。 – user113716
質問を更新し、さらにコードを追加しました。 .live()をどこかで使用する必要があるかもしれないと感じていますが、正しい構文がどこにあるのかわかりません。 – y3di