15
<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().

4

3 回答 3

18

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

您可以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()是新的热点。

于 2013-08-29T15:04:43.530 回答
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>
于 2013-08-29T15:05:20.407 回答
0

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

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

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

$(window).scroll(function(){ resize();}
于 2015-11-08T13:35:32.790 回答