Я написал функцию для изменения размеров блоков меню на моем веб-сайте. Затем я устанавливаю функцию для выполнения в загружаемом окне и в изменяющемся размере окна. Он работает, как и ожидалось, с .load()
, но он не имеет никакого эффекта на .resize()
. Я вижу, что эта функция вызывается, потому что она срабатывает, но она не выполняет фактическое изменение размера функции.jQuery .resize() не запускает функцию
Я знаю, что эта функция работает, потому что если вы обновляете окно, она вызывает изменение размера функции и блоков меню. Я также знаю, что .resize()
и функция достигнуты, потому что она вызывает предупреждения при изменении размера окна, но функция фактически не изменяет размеры разделов.
Я пробовал его с помощью .bind('resize', function() {})
, $(window).onresize = changeWidth();
и используя setInterval(function() {}, 300)
, а затем проверял, изменился ли размер окна, и все они имеют одинаковый результат.
Моя функция выглядит следующим образом:
function changeWidth() {
alert('resized');
var widestBlock = 0;
$('.menu-block').each(function() {
if ($(this).width() > widestBlock) {
widestBlock = $(this).width();
}
});
$('.menu-block').each(function() {
$(this).width(widestBlock);
});
}
И затем я вызвать функцию с .load()
и .resize()
$(window).load(changeWidth());
$(window).resize(function() {
changeWidth();
alert('hola');
});
Как вы на самом деле изменить размер вашего окна !? Это странная проблема. –
'$ (window) .load (changeWidth());' должно быть '$ (window) .load (changeWidth);', иначе вы сразу вызываете 'changeWidth' и передаете его возвращаемое значение в .load' – csum
Или еще лучше, используйте '$ (changeWidth);', чтобы убедиться, что он выполняется, когда DOM готов. – csum