У меня есть select[multiple]
, которому я дал класс custom-multiselect
на своей странице, для которого я перехватываю событие DOMSubtreeModified
следующим образом:
HTML:
<select class="custom-multiselect"></select>
JQuery:
$('.custom-multiselect').each(function (i, select) {
var sel = this;
adjustHeight(sel); //Custom function
//Binding DOMSubtreeModified to catch if the select list gets modified by the user
$(sel).on('DOMSubtreeModified', function () {
adjustHeight(sel);
});
//For Internet Explorer
$(sel).on('propertychange', function () {
adjustHeight(sel);
});
});
Этот подход работает безупречно. Я хочу преобразовать функцию DOMSubtreeModified
в MutationObserver
, так как DOMSubtreeModified
обесценивается.
Итак, я сделал что-то вроде этого:
var observer = new MutationObserver(function (mutation) {
mutation.forEach(function (m) {
if (m.type == 'subtree') {
adjustHeight(this);//Can I use m.target here?
}
});
});
observer.observe(document.querySelector('select.custom-multiselect'), {
subtree: true
});
Но в итоге получаю ошибку
TypeError: выражение не может быть преобразовано для возврата указанного типа.
Как я могу преобразовать мое событие DOMSubtreeModified
для наблюдения MutationObserver
?
this
вadjustHeight
наверняка не будет тем, что вы хотите - вы пробовали m.target? - person Jaromanda X   schedule 01.02.2017.type == "subtree"
- я удивлен, что ваш код доходит до того, что вы утверждаете - о, я вижу, эта ошибка связана с тем, что вы не установите хотя бы один изchildList
,attributes
илиcharacterData
в значение true... - person Jaromanda X   schedule 01.02.2017type == 'childList
и добавьтеchildList: true
к.observe
параметрам - person Jaromanda X   schedule 01.02.2017