Мне нужно записать в div некоторые пользовательские атрибуты данных, такие как:
data-100="50"
где "100" - это высота другого div, а "50" - "высота /2". Я сделал это с помощью jQuery, и он работает:
function customFn() {
var customFn = $('.page-title').height();
$('#header).attr('data-' + customFn, 'customFn/2');
}
customFn();
Теперь я хочу обновить эти значения при изменении размера окна, поэтому я добавил:
$(window).resize(customFn);
Но я думаю, что это не решение, потому что, когда я изменяю размер окна, функция добавляет новые атрибуты данных внутри div с новыми значениями вместо обновления существующих.
Есть ли альтернативное решение для этого?
Можете ли вы попробовать это?
$(window).resize(function() {
customFn();
});
Насколько я понимаю, вы пытаетесь сохранить два значения: высота и высота /2. Вы не должны хранить первый в имени атрибута data... скорее сохраните оба в отдельном атрибуте, например:
function customFn() {
var height = $('.page-title').height();
$('#header').data('height', height);
$('#header').data('half-height', height/2);
}
Еще лучше, поскольку одно значение зависит от другого (value1 = value/2), вам действительно нужно только сохранить первый, и при необходимости может вычислить второе.
Не используйте attr()
для обновления данных, а используйте data()
function customFn() {
var customFn = $('.page-title').height();
$('#header').data(customFn, customFn/2);
}