$ .validator.unobtrusive.parse - jquery в рельсах - PullRequest
0 голосов
/ 03 апреля 2012

Я нашел этот вопрос и ответ, в котором говорится о $ .validator.unobtrusive.parse

jquery ujs не работает, когда я удаленно загружаю партиалы / контент с помощью удаленных вызовов или jQuery

Похоже, это то, что мне нужно сделать, чтобы jquery работал с частями страницы, которые были загружены с помощью ajax.

Но я бы хотел знать, что он делает! Это вызывает рельсы UJS, или это напрямую с JQuery? Я искал и сайт rails ujs git hub, и документы jquery и ничего не видел ни в одном из этих мест. Есть ли где-нибудь документация?

Спасибо за любую помощь.


Возможно, это яснее:

Когда я добавил или изменил часть страницы с помощью create.js.erb или update.js.erb, как мне заставить jquery работать с этими частями страницы. Я пытаюсь снова сделать элементы сортируемыми, этот вопрос касается лучшего редактирования на месте, есть еще несколько вопросов, и приведенная выше ссылка кажется единственным ответом, и я не могу заставить это работать.

Итак, как вы получаете jquery для "просмотра" частей вашей страницы, которые вы уже однажды изменили, используя rails ujs.

1 Ответ

2 голосов
/ 15 апреля 2012

Это очень зависит от типа элемента страницы, с которым вы хотите «переработать», и от того, как исходная «работа» была запущена.

Если исходный код jquery get вызывает триггерпросто через:

$(document).ready(function(){
  $('#mydiv").css('color','red');
});

И вы хотите сбросить цвет div после того, как update.js.erb изменит его содержимое (я знаю, тупой пример), вы можете создать собственное событие и связать его с div:

$(document).ready(function(){
  $('#mydiv").on('rework', function() {
    $(this).css('color','red');
  });
});

Затем в последней строке update.js.erb вы можете сделать это:

$('#mydiv').trigger('rework');

Если исходная работа была запущена с помощью события on change илисобытие щелчка и т. д. Затем вы можете просто вызвать это событие:

$('#mydiv').trigger('click');

Инициирование событий - это хитрость, потому что инициированное событие НЕ точно совпадает с фактическим событием, а события в целом хитры.

Это может быть так же просто, как простое дублирование кода в конце вашего файла update.js.erb, если это простой однострочный или несколько строк.

...