如何从Jquery中的另一个函数调用一个函数

时间:2013-08-29 15:02:38

标签: jquery function

<script>
  $(document).ready(function(){
    //Load City by State
    $('#billing_state_id').live('change', function() {
       //do something
    });   
    $('#click_me').live('click', function() {
       //do something
       //need to recall $('#billing_state_id').live('change', function() { but how?
    });   
  });
</script>

按州加载城市工作正常,但我不知道是否可以在$('#click_me').live('click', function()等其他功能中调用它。

3 个答案:

答案 0 :(得分:10)

我假设您不想重新绑定事件,而是调用处理程序。

您可以使用trigger()来触发事件:

$('#billing_state_id').trigger('change');

如果您的处理程序不依赖于事件上下文并且您不想为事件触发其他处理程序,那么您也可以命名该函数:

function someFunction() {
    //do stuff
}

$(document).ready(function(){
    //Load City by State
    $('#billing_state_id').live('change', someFunction);   
    $('#click_me').live('click', function() {
       //do something
       someFunction();
    });
  });

另请注意,live()已弃用,on()是新的热门。

答案 1 :(得分:2)

将共享代码包装到另一个函数中:

<script>
  function myFun () {
      //do something
  }

  $(document).ready(function(){
    //Load City by State
    $(document).on('change', '#billing_state_id', function() {
       myFun ();
    });   
    $(document).on('click', '#click_me', function() {
       //do something
       myFun();
    });   
  });
</script>

答案 2 :(得分:0)

我认为在这种情况下你需要这样的东西:

$(window).resize(resize=function resize(){ some code...}

现在你可以在其他一些嵌套函数中调用resize():

$(window).scroll(function(){ resize();}