Подтвердить что ты не робот

JQuery: одновременно связывать нагрузку + изменение

Во многих случаях мне нужно привязать поведение к элементу после загрузки, а затем после запуска события (например, "change" ). Я думаю, что лучший способ - сделать это в одной строке:

$('#element_id').bind('load, change', function () {
...
});

Но это работает только для "изменения", а не для "нагрузки". Есть лучший способ?

4b9b3361

Ответ 1

Я наткнулся на ту же проблему. Удаление запятой недостаточно, по крайней мере, не в этом случае:

$(document).ready(function(){
    $('#element_id').bind('load change', function () {
        ... // (this DOESN'T get called on page load)
    });
});

Я думаю, что load события срабатывают до $(document).ready().

Это простое решение:

$(document).ready(function(){
    $('#element_id').bind('change', function () {
        ...
    });
    $('#element_id').trigger('change');
});

Ответ 2

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

$(".my-selector").on("change rightnow", function() {
  // do stuff...
}).triggerHandler("rightnow");

Ответ 3

Вам просто не нужно удалять запятую?