jQuery - 使用自定义函数传递参数以进行单击

时间:2011-08-02 11:07:52

标签: jquery

对不起,这是一个糟糕的问题。我无法解决如何删除它。这里的实际问题和解决方案:

jQuery - Toggle div class on click

4 个答案:

答案 0 :(得分:1)

无需重新绑定功能。

将click事件绑定到一个名为toggleSection()的函数,该函数隐藏了该部分(如果它是可见的)或显示是否隐藏,或者只是使用它:

$('.section.hidden').click(function() {
    $(this).toggle();
});

答案 1 :(得分:0)

在这种情况下,您可以使用

$('.section-legend, .section-collapse').click(hidesection);

function hideSection() {
    $(this).addClass('hidden');
}

答案 2 :(得分:0)

jQuery提供了一种更简单的方法来实现您的目标:

.toggleClass()

这样您就不必手动实现更改,而是使用一次单击绑定

如果你想隐藏和显示一个对象,你也可以使用

.toggle()

而不是手工编码。 这主要是Javascript-Frameworks为您所做的,它们实现了您可以利用的现有功能,而不是自己实现它们。此外,(大多数情况下)还会考虑跨浏览器的不兼容性。

如果您真的想充分利用jQuery,请深入了解The jQuery API以了解它所提供的所有功能。这样,您将节省大量时间,否则您将投入开发现有功能。

答案 3 :(得分:0)

如果您需要的只是可见性,只需使用切换即可。如果您有隐藏部分的自定义css,请使用toggleClass。为了说明

<script type="text/javascript">
    $(function () {

        $('p').click(function () {
            $('#book').toggle();



            // In javascript, just like many C-derived languages, you can pass 
            // the method's pointer to a variable in. 
            // hidden is the custom class you add and remove from a section
            f = $('#great').is('.hidden') ? funky : hacky;

            f($(this));



            $('#great').toggleClass('hidden');

            $('#amazing').toggleClass('man');

            alert($('#great').attr('class') + ' ---- ' + $('#amazing').attr('class'));
        });


        function funky(section) {
            $(section).html('this is funky!');
        }

        function hacky(section) {
            $(section).html('this is hacky!');
        }

    });
</script>

<div id='book' style='display: none'>Hello</div>

<div id='great' class='diz hidden whatever'>Hai</div>
<div id='amazing' class='spider'>Hai</div>

<p>Stackoverflow rules!</p>

如果您希望隐藏部分,请将style=display: none添加到代码中。对于自定义隐藏/格式化,请使用toggleClass。