在页面加载时执行匿名函数

时间:2018-01-26 22:32:50

标签: javascript ajax

当页面加载时,有很多加载JavaScript函数的例子(onLoad(),$(document).ready()等)。我遇到的问题是我有一个没有函数名的函数,用于根据另一个函数的值加载一个select语句。代码工作(下面),但它没有名称...我需要它在我加载页面时以及第一个选择的值更改时执行。我一直在寻找例子,找不到一个。我的Google fu让我失望了。有人可以指出我正确的方向吗?

$(document).ready(function()
  {
     $("#nameregion").change(function()
     {
        var region= document.getElementById("nameregion").value;
        $.ajax
       ({
           type: "POST",
           url: "namebranch.php",
           data: { 'myRegion' : region },
           //cache: false,
           success: function(data)
           {
//alert( data );                 
              $("#namebranchoptions").html(data);
           } 
        });
     });
  });

4 个答案:

答案 0 :(得分:2)

可能最容易移动您的匿名函数并为其命名:

function handleChange() {
  var region = document.getElementById("nameregion").value;
  $.ajax({
     type: "POST",
     url: "namebranch.php",
     data: { 'myRegion' : region },
     //cache: false,
     success: function(data)
     {
//alert( data );                 
        $("#namebranchoptions").html(data);
     } 
  });
}

$(document).ready(function() {
   $("#nameregion").change(handleChange);
});

然后你可以在你的代码中的其他地方调用你的函数

答案 1 :(得分:2)

由于您将其绑定为更改事件处理程序,因此您可以立即触发change事件来运行它。

$("#nameregion").change(function() { ... }).trigger("change");

答案 2 :(得分:0)

我想你要做的是在页面加载时执行一个函数而在另一个函数上执行另一个函数,为此你需要定义一个命名函数。

    function functionName () {
      //do things
    }

之后,您可以使用此功能,只要您需要它就可以执行该功能。

例如,一次加载页面时:

   $(document).ready(function(){
     functionName ();
   });

然后再次执行您想要执行该功能的操作:

   if (somethingHappens) {
     functionName ();
   }

答案 3 :(得分:-1)

取出你的匿名功能,给它一个名字。 然后通过更改并直接在document.ready上调用它。

$(document).ready(function()
  {
     $("#nameregion").change(getNameBranch); // this'll call it on change

     getNameBranch(); // this'll call it on load

     function getNameBranch()
     {
        var region= document.getElementById("nameregion").value;
        $.ajax({
           type: "POST",
           url: "namebranch.php",
           data: { 'myRegion' : region },
           //cache: false,
           success: function(data)
           {
              //alert( data );                 
              $("#namebranchoptions").html(data);
           } 
        });
     }
});