2015-01-02 2 views
1

У меня есть этот скрипт:Могут ли эти два события jQuery упрощаться в одном?

<script> 
     $(document).ready(function() { 
      $('#uk-width-1-2-left').height($('#uk-width-1-2-right').height()) 
     }); 

     window.addEventListener("resize", function() { 
      $('#uk-width-1-2-left').height($('#uk-width-1-2-right').height()) 
     }); 
    </script> 

, который на самом деле сделать то же самое. но, поскольку событие отличается, я вручную отделяю их на две разные функции, запускаемые с различными событиями. может ли он быть упрощен в одну функцию?

спасибо и счастливого нового года

ответ

6

Конечно, это может просто использовать JQuery для события изменения размера, и вызвать его на странице загрузки

$(document).ready(function() { 
    $(window).on('resize.ukheight', function() { 
     $('#uk-width-1-2-left').height($('#uk-width-1-2-right').height()) 
    }).trigger('resize.ukheight'); 
}); 
+0

это работает !!! спасибо adeneo ... –

+0

Я предпочел бы разделить обработчик изменения размера на отдельную именованную функцию и вызвать это непосредственно вместо вызова 'trigger'. Основная причина заключается в том, что 'trigger' приведет к вызову всех других зарегистрированных обработчиков, которые могут быть не такими, какими вы хотите (поскольку в этот момент не происходит изменения размера) –

+1

@JuanMendes - позвольте мне исправить это для вас! Распространение имен исключает проблему вызова других обработчиков – adeneo

1
var resize = function() { 
    $('#uk-width-1-2-left').height($('#uk-width-1-2-right').height()) 
}); 

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

window.addEventListener("resize", resize);