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>

これがjavascriptです:

<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">タグをクリックしたときにアラートが空白で表示される理由を誰かが理解するのを手伝ってもらえますか?

4

2 に答える 2

2

$link の代わりに link クラスを使用して LI をエコーし​​ています。

また、

if ($(this).hasClass("forms"))
于 2013-02-25T18:06:37.367 に答える
0

.prop()実際には、DOM要素のプロパティにアクセスする場合にのみ使用する必要があり、属性(classまたはstylewidthなど)には使用しないでください。クラスが必要な場合は、.attr('class')代わりにを使用します(または、他の人が述べているように.hasClass()、要素に特定のクラスが適用されているかどうかを(jQueryで)テストするために使用できます)。

.propvsのフォローアップ.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
于 2013-02-25T18:08:26.703 に答える