2013-02-25 2 views
1

Вот что я хочу: у меня есть несколько тегов <h3>, которые используются в качестве ссылки для выявления ответов на часто задаваемые вопросы. Кроме того, я добавил форму в случае, если пользователь не увидел интересующего вопроса на этой странице. Ссылка на форму находится внизу страницы. Теперь, когда пользователь нажимает на показать форму link Я бы хотел, чтобы окно прокручивалось вниз. Я сделал это, однако, когда я нажимаю на любую ссылку, окно также прокручивается вниз. Я хочу, когда пользователь нажимает только на показать форму ссылку, что окно прокручивается.

вот что я до сих пор:

<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

'$ (документ) .ready (...' написано неправильно ли это, что путь в вашем коде, а – Marcus

+0

Если вы собираетесь? после класса вы хотите, чтобы '.attr' не' .prop' Prop хорош для реальных свойств, таких как 'value',' className' и т. д. –

+0

Нет свойства класса, однако есть свойство className. –

ответ

2

Вы эхом своих LI со ссылкой класса, а не $ link.

Кроме того, использование

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

Все еще не работает. – Bryan

0

.prop() должны действительно быть использованы только при доступе к properties и не атрибуты элемента DOM в (как class или style, width и т.д.). Если вы хотите использовать класс, используйте вместо него .attr('class') (или, как указывали другие, вы можете использовать .hasClass() для тестирования (с помощью jQuery), если элемент имеет специальный класс aplied).

следовать вверх по .prop.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

+0

Я изменяю .prop на .attr, и появляется предупреждение ** Undefined ** – Bryan