У меня есть обязательная привязка нокаута для всплывающих подсказок и несколько раз, когда страница загружается нормально, а несколько раз я получаю эту ошибку, возникающую в привязке.Ошибка нокаута при загрузке бутстрапа с RequireJS
$ (...). Подсказке не является функцией
я поставил точку останова в секции, где это происходит, а иногда объект JQuery не имеет каких-либо функций начальной загрузки на Это. Я могу только предположить, что это проблема с временем загрузки загрузочной библиотеки по требованию. Как я уже сказал, это происходит не каждый раз, и, похоже, это происходит гораздо чаще, когда у меня открыта консоль разработчиков.
Вот мой требуется CONFIG
requirejs.config({
waitSeconds: 200,
shim: {
"bootstrap": {
deps: ['jquery'],
exports: "$.fn.tooltip"
}
},
enforceDefine: true,
paths: {
jquery: 'jquery-1.11.3.min',
bootstrap: 'bootstrap.min',
moment: 'moment.min',
knockout: 'knockout.min',
appVM: 'appVM',
custombindings: 'custombindings'
}
});
И моего связывание
define(['knockout', 'jquery', 'bootstrap'], function (ko, $, bootstrap) {
ko.bindingHandlers.tooltip = {
init: function (element, valueAccessor) {
var local = ko.utils.unwrapObservable(valueAccessor()),
options = {};
ko.utils.extend(options, ko.bindingHandlers.tooltip.options);
ko.utils.extend(options, local);
$(element).tooltip(options); //Error thrown here
ko.utils.domNodeDisposal.addDisposeCallback(element, function() {
$(element).tooltip("destroy");
});
},
options: {
'container': 'body',
'delay': { 'show': 1000, 'hide': 100 },
'animation': 'true'
}
};
});
Моих применять привязки
define(['jquery', 'bootstrap', 'appVM', 'knockout', 'domReady!'],
function(jquery, bootstrap, appVM, ko) {
var vm = new appVM();
ko.applyBindings(vm);
});
У вас есть подобный блок определения, где вы «применяетеBindings»? Вы хотите быть уверенным, что все загружено. –
@RoyJ Я отредактировал мой вопрос. Я загружаю бутстрап перед применением привязок. – Tbonebrad
Вы проверили, что 'element' является элементом DOM, а не null или undefined? –