@IvanN777

Все javascriptы клонировались, пошел какой то мрак( , что я делал не так?

Хотел подгрузить ajaxсом блок.
С этого начались мои кошмары(((
$ ->
  frame_d=$('div#frame_d.load')
  $("document").ready ->
    $.ajax
      type: "GET",
      url: frame_d.attr("src")
      dataType: "html"
      error: (jqXHR, textStatus, errorThrown) ->
        $('body').append "AJAX Error: #{textStatus}"
      success: (data, textStatus, jqXHR) ->
        frame_d.html(data)
        frame_d.removeClass("load")

Вставляю код coffeescript
Ожидаю, что при загрузке загрузиться мой блок.
И он грузиться, но потом грузиться еще еще и еще.

Хотел сделать костыль frame_d.removeClass("load"), убить селектор в коде, чтобы сто раз не грузился.

Но видимо он успевает погрузиться 4 раза подряд, а потом останавливаеться.

В итоге когда я кликаю, отправить запрос идет 4 отправки запроса.
Когда я хочу что то удалить, то спрашивает меня об этом 4 раза.
Вообщем мне кажеться, что turbolinks и coffeescript как то развлекаються.
Что делать?
Возможно виноваты мои кривые ручки, но делать надо что-то.
  • Вопрос задан
  • 2193 просмотра
Пригласить эксперта
Ответы на вопрос 2
@eyeless_watcher
А если frame_d.removeClass сделать до frame_d.html?
Ответ написан
Комментировать
@IvanN777 Автор вопроса
мой фейл, извините

Хотя тут написано
5.2 Page Change Events
When writing CoffeeScript, you'll often want to do some sort of processing upon page load. With jQuery, you'd write something like this:

$(document).ready ->
alert "page has loaded!"
However, because Turbolinks overrides the normal page loading process, the event that this relies on will not be fired. If you have code that looks like this, you must change your code to do this instead:

$(document).on "page:change", ->
alert "page has loaded!"

Что лучше пользоваться другим событием. Я просто каждый раз подгружал макет. В итоге такая бяка.
render layout: false поставил и все классно

Мой фейк
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы