2013-02-25 31 views
1

這就是我想要的:我有多個<h3>標籤被用作鏈接來揭示FAQ的答案。此外,我還添加了一個表單,以防用戶在該頁面上看不到任何興趣問題。表單的鏈接位於頁面的底部。現在,當用戶點擊顯示錶格鏈接時,我希望窗口向下滾動到底部。我這樣做了,但是當我點擊任何鏈接時,窗口也滾動到底部。我希望當用戶只點擊顯示錶格鏈接時,窗口會滾動。

這裏是我到目前爲止有:

<body> 
<?php 
$array = array("link 1","link 2","link 3"); 
foreach($array as $link) 
{ 
    echo "<h3 class='link'>".$link."</h3>"; 
    echo "<div>"; 
    //information to be displayed 
    echo "</div>"; 
} 
?> 
<h3 class="forms">Show Form</h3> 
//form information here 
</body> 

這裏是javscript:

<script> 
$(document).ready(function(){ 
    $('h3').click('bind',function() { 
     $(this).toggleClass('open').next().slideToggle(500,function(){ 
      var i = $(this).prop('class'); 

      if(i == 'forms') 
      { 
       $("html, body").animate({scrollTop: $(document).height()}, "slow"); 
      } 
     }); 
    }); 
}); 
</script> 

我增加了一個警報,以驗證我的輸出,當我點擊<h3 class="forms">警報是空白但是當我點擊其他人時,警報顯示「鏈接」。有人可以幫我弄清楚爲什麼當我點擊<h3 class="forms">標籤時警報顯示爲空白?

+1

'$(文件)。就緒(...'拼寫錯誤是因爲你的代碼的方式,以及 – Marcus 2013-02-25 18:03:43

+0

如果你打算?課後,你希望'.attr'不是'.prop' Prop對於實際屬性是很好的,比如'value','className'等 – 2013-02-25 18:04:04

+0

沒有class屬性,但是有className屬性 – 2013-02-25 18:04:21

回答

2

您正在使用鏈接類而不是$鏈接迴應您的LI。

此外,使用

if ($(this).hasClass("forms")) 
+0

仍然無法正常工作。 – Bryan 2013-02-25 18:27:30

0

.prop()應該訪問DOM元素的properties而不是屬性(如classstylewidth等)時,實際上只被使用。如果你想要這個類,可以使用.attr('class')來代替(或者像其他人提到的那樣,你可以使用.hasClass()來測試(使用jQuery)一個元素是否具有特定的類)。

來跟進.prop VS .class

<a href="#foo" class="foo-class" id="foolink">Foo Bar link</a> 

var a = document.getElementById('foolink'), 
    $a = $(a); 

$a.prop('href') // like directly calling a.href 
$a.prop('id') // again, like directly calling a.id 
$a.attr('class') // where as it's actually a.className 
+0

事情是當我點擊它在PHP語句中的鏈接工作。警報顯示該班。它是HTML中的鏈接,它沒有顯示類,這是我無法得到的,它爲什麼這樣做? – Bryan 2013-02-25 18:17:47

+0

我將.prop更改爲.attr,並且警報顯示**未定義** – Bryan 2013-02-25 18:23:02

相關問題