簡體   English   中英

jQuery文檔中的綁定就緒時正在運行的函數

[英]Function being run when bind in jquery document ready

我正在嘗試將click事件綁定到下面的函數,但是在准備好文檔綁定后,當前正在運行整個函數。

是否可以僅在click事件上運行它? 可能與我的方法的組成方式有關嗎?

提前致謝

    $(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');
            }
        }
    };

您正在調用function (處理程序),而不是將function (處理程序)的reference (名稱)傳遞給on()

更改

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

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

事件處理程序沒有括號 您要傳遞要執行的功能,而不是執行結果。 另外,由於將選擇器用於初始化,因此您將需要在就緒處理程序內移動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);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM