jquery выдает Uncaught RangeError: превышен максимальный размер стека вызовов

Я использую FancyBox2-Rails, чтобы открывать небольшое окно/диалоговое окно, когда кто-то нажимает на определенную ссылку на моем сайте.

Вот простой вид:

:javascript
$(document).ready(function() {
  $("a.iframe").fancybox();
});

...

%li
  = User_name
  = link_to 'Click me', "http://www.google.com", :class => "iframe"

...

Но я продолжаю получать эту ошибку:

Uncaught RangeError: Maximum call stack size exceeded jquery.js:2868
jQuery.event.remove jquery.js:2868
jQuery.event.remove ....
.......

Кто-нибудь может сказать мне, что происходит?

Спасибо


person One Two Three    schedule 28.02.2013    source источник
comment
Есть ли шанс, что вы могли бы бросить сгенерированную страницу на скрипку?   -  person BLSully    schedule 01.03.2013
comment
Не могли бы Вы уточнить? (Есть много исходных файлов... Я не уверен, какие из них я должен разместить здесь)   -  person One Two Three    schedule 01.03.2013


Ответы (1)


Это часто случается в последнее время, вы используете twitter bootstrap?

https://github.com/twitter/bootstrap/issues/6862

Twitter Bootstrap 3.2 ломает Fancybox, и поддержка fancybox уже заявила, что не будет это исправлять, так что это в основном проблема с javascript, а не с рельсами.

Это в случае, если вы используете Twitter Bootstrap 3.2 или что-то в этом роде.


Следуйте за проблемой по ссылке на github, кажется, есть решение, выполнив

изменить код в строке 794 (bootstrap.js)

.on('.dropdown-menu', function (e) { e.stopPropagation() })

для этого

.on('touchstart.dropdown.data-api', '.dropdown-menu', function (e) { e.stopPropagation() })
person rorra    schedule 28.02.2013
comment
В dropdown.js замените .on('.dropdown-menu', function (e) { e.stopPropagation() }) на .on('click.dropdown-menu', function (e ) { e.stopPropagation() }) Проверьте тему здесь: github.com/twitter/bootstrap/ вопросы/6862 - person rorra; 01.03.2013
comment
У меня нет такого файла, как bootstrap.js в каталоге моего проекта... Так что, возможно, проблема не в этом. Но спасибо за ответ - person One Two Three; 01.03.2013
comment
На самом деле, я взял это обратно. КОГДА я сделал Inspect Element из своего браузера, файл bootstrap-dropdonw.js появился в Resources. Но он доступен только для чтения. Как мне его отредактировать? - person One Two Three; 01.03.2013
comment
Вы должны обновить свой исходный код, я не уверен, как вы загружаете twitter bootstrap в свое приложение, возможно, он у вас есть как драгоценный камень, но вы можете просто загрузить файлы .css и .js из twitter bootstrap и поместите его в свой каталог /assets, и тогда вы сможете делать обновления там. - person rorra; 01.03.2013
comment
Правильно, я загружаю бутстрап как драгоценный камень. (И я не уверен, почему люди хотят делать это именно так, а не просто скачивать файлы .css и .js) - person One Two Three; 01.03.2013