将$(’body’)。on(’click’)与$(window).resize(jQuery中的function())结合起来

想知道是否有办法将2个独立function的相同代码组合成1个function。

就我而言:

jQuery('body').on('click', '.some_div', function (e) { // Long and fancy code }); jQuery(window).resize(function () { // Do the same fancy stuff (identical code) }); 

您可以定义在两个事件下调用的单个函数:

 function doSomething(e) { console.log('Your code here...'); } jQuery('body').on('click', '.some_div', doSomething); jQuery(window).resize(doSomething); 

请记住,根据所引发的事件, this的引用将有所不同,应该在doSomething函数中使用。

您可以创建一个函数来处理这两个事件,并将此函数引用传递给事件处理程序。

 function myHandler(e) { // Long and fancy code } jQuery('body').on('click', '.some_div', myHandler); jQuery(window).resize(myHandler); 

还有另一种方法可以做到这一点。

 jQuery('body').on('click', '.some_div', function (e) { // Long and fancy code }); jQuery(window).resize(function () { $('.some_div').trigger('click') }); 

创建一个单独的函数并从所需位置调用它:

 jQuery('body').on('click', '.some_div', function(e){ myFunction(); }); jQuery(window).resize(function() { myFunction(); }); function myFunction(){ // Long and fancy code }