0

我正在尝试制作一个隐藏特定按钮的按钮 - 然后将其替换为另一个隐藏的 . 但是,当我测试代码时,除了包含“显示:无”的 .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 只不过是“显示:无”。

有一个 id 为 unmarried 的,当单击它时会淡出一个 div 并用一个隐藏的 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 回答