При изменении или при загрузке, когда пользователь выбирает параметр сетки, я пытаюсь добавить класс влево -лево или вправо-вправо к divs (, media_right
), которые являются братьями и сестрами для дедушки и дедушки grid
, Однако я не могу выбрать братьев и сестер.jQuery | Целевые дедушки и бабушки-братья
Вот HTML-
<div data-name="grid">
<div class="label">
<label>Grid</label>
</div>
<div class="input">
<select>
<option value="left_right">Left/Right</option>
<option value="left_media">Content/Media</option>
<option value="media_right" selected="selected">Media/Content</option>
</select>
</div>
</div>
<div data-name=“block_left”></div>
<div data-name=“media”></div>
Вот JQuery
function blockGrid() {
var gridSelect = $('[data-name=”grid”] select');
$(gridSelect).each(function(index) {
console.log(index + ": " + $(this).val());
// On Load
if($(this).val() == “media_right”) {
$(this).closest('[data-name="grid"]').find('[data-name="media"]').addClass('pull-xs-left');
$(this).closest('[data-name="grid"]').find('[data-name="block_left"]').addClass('pull-xs-right');
};
// On Change
$(this).change(function() {
console.log('Grid changed to ' + $(this).val());
if($(this).val() == “media_right”) {
$(this).closest('[data-name="grid"]').find('[data-name="media"]').addClass('pull-xs-left');
$(this).closest('[data-name="grid"]').find('[data-name="block_left"]').addClass('pull-xs-right');
} else {
$(this).closest('[data-name="grid"]').find('[data-name="media"]').removeClass('pull-xs-left');
$(this).closest('[data-name="grid"]').find('[data-name="block_left"]').removeClass('pull-xs-right');
};
});
});
};
Да, это сработало! Неправильные цитаты были добавлены путем копирования и вставки. 0: Просто выполните следующие действия: у меня есть функция 'blockGird' внутри' $ (function() {fiveBlockGrid();}); ' Если это не работает, когда новые'
'загружаются через ajax? – Roc