Недавно я написал плагин, который делает именно это - jquery.initialize
Вы используете его так же, как функция .each
$(".some-element").initialize( function(){
$(this).css("color", "blue");
});
Отличие от .each
- это ваш селектор, в этом случае .some-element
и ждать новых элементов с этим селектором в будущем, если такой элемент будет добавлен, он также будет инициализирован.
В нашем случае функция инициализации просто меняет цвет элемента на синий. Поэтому, если мы добавим новый элемент (независимо от того, с помощью ajax или даже F12-инспектором или что-то еще), например:
$("").addClass('some-element').appendTo("body"); //new element will have blue color!
Плагин немедленно запустит его. Также плагин гарантирует, что один элемент инициализируется только один раз. Поэтому, если вы добавите элемент, а затем .detach()
из тела, а затем добавите его снова, он не будет снова инициализирован.
$("").addClass('some-element').appendTo("body").detach()
.appendTo(".some-container");
//initialized only once
Плагин основан на MutationObserver
- он будет работать на IE9 и 10 с зависимостями, подробно описанными на странице readme .
Я думаю, что проблема может быть вызвана тем, что вы сначала добавили левое меню, а затем добавили несколько видов. Вы можете добавить menuView в последнюю очередь или попытаться вывести menuView вперед. Зайдите в IBOutlet и попробуйте следующий код:
[self.view bringSubviewToFront:menuView];