SORU
13 AĞUSTOS 2009, PERŞEMBE


İki unsur eğer Test aynıdır

JS ile gizlenmeyen onları tıklayarak/gizli öğelerin bir listesi var. Şu anda açık olan bir öğe değişken, openActivity saklanır. Yalnızca bir öğe bir anda açılabilir. Tıklayın kontrol etmek istiyorum() tıklandığında öğeyi çift animasyon yapmak değil zaten açılan öğe olarak aynı olup olmadığı olay ve ardından açılış ve kapanış. Bu çalışmak için ilk şüpheli olur:

if (openActivity == $(this)) alert('hello');

Ancak yok. Bu da işe yaramazsa kaydetti:

if ($(this) == $(this)) alert('hello'); //never alert()s !

Eğer sana faydası olur mu bilmem ama burada en alakalı tüm kod yok, (buna bakmak olmayabilir):

openActivity = null;
$('.activityOuterContainer').click(function () {
    if (openActivity !== null) {
    	if (openActivity == $(this)) alert('hello');
    	activityExtra(openActivity).slideUp();
    	activityToggle(openActivity).css('background-position', '0 0');
    }
    openActivity = $(this);
    activityExtra(openActivity).slideDown();
    activityToggle(openActivity).css('background-position', '0 -20px');
});


function activityToggle(a) {
    return a.closest('.activityOuterContainer').find('.activityToggle');
}
function activityExtra(a) {
    return a.closest('.activityOuterContainer').find('.activityExtra');
}

Ve öğeleri:

<div class="activityOuterContainer">
    <div class="activityContainer">
    	<div class="activityFormContainer">
    		name here
    		<div class="activityExtra">
    			<p>extra</p>
    		</div>
    	</div>
    	<div class="activityIsUsed">checkbox here</div>
    </div>
    <div class="activityToggle"></div>
</div>

CEVAP
13 AĞUSTOS 2009, PERŞEMBE


Bu çalışması gerekir:

if ($(this)[0] === $(this)[0]) alert('hello');

bu yüzden bu

if (openActivity[0] == $(this)[0]) alert('hello');

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • IGN

    IGN

    19 EYLÜL 2006
  • Philip DeFranco

    Philip DeFra

    16 EYLÜL 2006
  • warningthepeople

    warningthepe

    21 EYLÜL 2011