【问题标题】:Function being run when bind in jquery document ready准备好在 jquery 文档中绑定时运行的函数
【发布时间】:2013-02-18 09:14:09
【问题描述】:

我正在尝试将点击事件绑定到下面的函数,但是当绑定到文档中时,整个函数当前正在运行。

是否可以仅在点击事件上运行它?可能与我的方法的组成方式有关?

提前致谢

    $(function() {
        $("#expand-search").on("click", search.resize());
    });

    var search = {

        element: $('#search_advanced'),

        resize: function() {
            search.element.slideToggle(400, 'swing', search.buttonState());
        },
        buttonState: function() {
            if(search.element.is(':hidden')) {
                console.log('hidden');
            } else {
                console.log('visible');
            }
        }
    };

【问题讨论】:

    标签: javascript jquery binding click


    【解决方案1】:

    您正在调用function(处理程序),而不是将函数(处理程序)的reference(名称)传递给on()

    改变

     $("#expand-search").on("click", search.resize());
    

     $("#expand-search").on("click", search.resize);
    

    【讨论】:

    • 完全错过了。谢谢!
    【解决方案2】:

    No parenthesis 给事件处理程序!您想传递要执行的函数,而不是执行它的结果。此外,您需要将 search 对象移动到就绪处理程序中,因为您使用选择器进行初始化。

    $(function() {
        var search = {
            element: $('#search_advanced'),
            resize: function() {
                search.element.slideToggle(400, 'swing', search.buttonState);
            },
            buttonState: function() {
                if(search.element.is(':hidden')) {
                    console.log('hidden');
                } else {
                    console.log('visible');
                }
            }
        };
        $("#expand-search").on("click", search.resize);
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-29
      • 2015-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-20
      • 1970-01-01
      相关资源
      最近更新 更多