После долгих отладок я пришел к выводу, что эти две библиотеки сталкиваются. Я проверил их оба по отдельности, и они работают, но когда используются вместе (и есть атрибут rel, вещи ломаются)
Как воспроизвести
- Если ссылка имеет rel или $ ('что-то'). Colorbox ({rel: 'что-то'});
- $ ( 'somethingelse') bxSlider (...).
colorbox потерпит неудачу при нажатии на любое изображение, имеющее colorbox (не только общие параметры) С:
Uncaught TypeError: Невозможно прочитать свойство 'rel' из неопределенного
Оскорбляющие строки кода:
if (settings.rel !== 'nofollow') {
$related = $('.' + boxElement).filter(function () {
var relRelated = $.data(this, colorbox).rel || this.rel;
return (relRelated === settings.rel);
});
Я обнаружил похожую проблему Использую ли я jQuery noconflict, чтобы избежать конфликта плагинов? однако эффект был другим. И все же причина кажется похожей. По словам того, кто отвечает на этот вопрос, проблема в том, что bxSlider удаляет $ .data (), установленный colorbox.
Итак, мои вопросы:
- Есть ли способ обойти это?
- Это ошибка в colorbox?
- Это ошибка в bxSlider?