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

  • CNET

    CNET

    5 Mayıs 2006
  • Learn Math Tutorials

    Learn Math T

    20 Kasım 2011
  • metal571

    metal571

    30 Mayıs 2006