将参数传递给jQuery ready()的解决方法

Workaround for passing parameter to jQuery ready()

本文关键字:解决 方法 ready 参数传递 jQuery      更新时间:2023-09-26

我有一些代码调用jQuery document.ready(),这是在多个HTML文件中使用。不同之处在于这些html使用不同的div id。我知道一个选择是检查$(document).ready()中的硬编码div id。但我想写一个通用的代码,将采取基于当前/调用HTML页面的div id ?

那么是否有任何方法或解决方法将参数传递给jQuery ready() ?

$(document).ready()只是想要一个函数作为参数,所以您可以编写一个函数,将您的ID作为参数并返回$(document).ready()的函数。例如:

$(document).ready(function() {
    $('#some_id').click(/*...*/);
});

你可以这样做:

function make_ready(id) {
    return function() {
        $('#' + id).click(/*...*/);
    };
}
$(document).ready(make_ready('some_id'));

然后你可以把你的make_ready放在一些公共的位置,用它来构建你的$(document).ready()调用的函数。

document ready只接受一个处理程序函数作为参数。通过为每个html存储当前的div id,您仍然可以在文档准备函数中定义通用代码。

<input type="hidden" id="current_div" value="div1" />
$(document).ready(function() {  
    var div_id = $('#current_div').val();  
    // generic code  
});