0

特定のボタンを非表示にするボタンを作成しようとしています-そして、それを別の隠しボタンに置​​き換えます。ただし、コードをテストすると、「display: none」を含む .removeClass を除いて、すべてが正しく起動します。

コードは次のとおりです。

 <script type="text/javascript">
    $(document).ready(function(){
        var webform = document.getElementById('block-webform-client-block-18');
        var unmarriedbutton = document.getElementById('unmarried');
        var buyingblock = document.getElementById('block-block-10');

        $(unmarriedbutton).click(function () {
            $(buyingblock).fadeOut('slow', function() {
                $(this).replaceWith(function () {
                    $(webform).removeClass('hiddenbox')
                });
            });
        });
    });
    </script>

「hiddenbox」の CSS は「display: none」にすぎません。

unmarried の id があり、クリックすると div がフェードアウトし、クラスを削除して表示する非表示の div に置き換えます。ただし、最後の部分は起動しません。他のすべての部分は起動し、適切に機能します。コンソールでも見ると、エラーは表示されません。

誰かがエラーがどこにあるのか教えてもらえますか? ありがとう!

編集: div を置き換えるために間違った関数を使用している可能性があるため、サイトは次のとおりです: http://drjohncurtis.com/happily-un-married . 「本をダウンロード」ボタンをクリックすると、div が消えて div#block-webform-client-block-18 に正しく置き換えられます。ただし、隠したままです。

4

2 に答える 2

1

replaceWith に渡す関数は、置換するコンテンツを返す必要があります。実際にコンテンツを返却する必要があります。

何を達成しようとしているのか正確にはわかりませんが、目標がそれを webform オブジェクトに置き換えることである場合は、これを使用できます。

$(this).replaceWith(function () {
       return($(webform).removeClass('hiddenbox'));
});
于 2013-02-09T04:17:41.797 に答える
-2

注意、jquery を使用してください。

    var webform = $('#block-webform-client-block-18');
    var unmarriedbutton = $('#unmarried');
    var buyingblock =$('#block-block-10');
    unmarriedbutton.click(function () {
        buyingblock.fadeOut('slow', function() {
            $(this).replaceWith( webform.removeClass('hiddenbox'));

        });
    });

速すぎました。オブジェクト (getelementbyid) を選択し、そこから jquery オブジェクトを作成する方法だと思います... -> jquery API を使用します

于 2013-02-09T04:16:41.920 に答える