【问题标题】:How to call a function with parameter onload or after dom is ready?如何使用参数 onload 或 dom 准备好后调用函数?
【发布时间】:2017-12-29 12:32:06
【问题描述】:

我有以下函数,它接受一个选定的值并在单击时运行它。我仍然会这样。但是,客户希望有一个默认选择的值应该运行该函数,并且该函数在页面上进行更改。

那么我应该如何通过预先选择的值来运行这个函数,并在 dom 准备好之后运行它而不点击任何东西?

var value = $("#market-select option:selected").text(); // this takes value of pre-selected item
vizFilter1(value); // and I want to call this function after dom is ready or onload after passing values. 

我尝试过这种方式,但它没有做任何事情。

$(document).ready(function (){

function run (){
var value = $("#market-select option:selected").text();
vizFilter1(value);

}

}); 

如何在页面加载后运行这个而不需要用户做任何事情?

【问题讨论】:

    标签: javascript jquery dom selecteditem selectedvalue


    【解决方案1】:

    如果您希望能够从多个位置运行这两行代码,例如,从单击处理程序和准备好的 DOM,请将它们包装在一个函数中(就像您所做的那样),然后 调用它来自您的 DOM 就绪处理程序的函数。或者简单地将函数绑定为就绪处理程序:

    function run (){
      var value = $("#market-select option:selected").text();
      vizFilter1(value);
    }
    
    $(document).ready(function (){
      run();
      // do other on ready things here if required
    });
    
    // OR, if you don't need to do other things:
    $(document).ready(run);
    

    在您展示的尝试中,您声明了一个 run() 函数,但从未调用它。虽然在您的就绪处理程序中定义函数是很好的,只要您调用它 - 这可能更可取,因为它使函数保持在全局范围之外。

    【讨论】:

    • 它仍然无法正常工作。我可以在控制台中毫无问题地调用 vizFilter1,但文档准备就绪不再工作!你认为这是为什么?
    • 我不知道。鉴于您提到了控制台,我假设您已经检查过没有记录错误消息?
    • 不。它不工作!
    • 您是说不显示警报吗?控制台中没有错误?请注意,在我的回答中,我展示了两种不同的方式来使用文档就绪处理程序 - 您需要其中一种,而不是两者兼而有之。
    • 似乎我在 vizFilter 函数中拥有的任何东西都会导致问题,因为它在加载所有内容后加载。不知道这是否能解释什么。如果我在准备好的文档中调用 vizFilter,vizFilter 参数将不再起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-05
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    • 2011-11-14
    • 2011-12-20
    相关资源
    最近更新 更多