JQuery: одновременно связывать нагрузку + изменение
Во многих случаях мне нужно привязать поведение к элементу после загрузки, а затем после запуска события (например, "change" ).
Я думаю, что лучший способ - сделать это в одной строке:
$('#element_id').bind('load, change', function () {
...
});
Но это работает только для "изменения", а не для "нагрузки". Есть лучший способ?
Ответы
Ответ 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
Вам просто не нужно удалять запятую?
Ответ 4
Нет запятой. Прочтите документы.
http://api.jquery.com/bind/
Ответ 5
попробуйте его без запятой:
$('#element_id').bind('load change', function () {
...
});
http://api.jquery.com/bind/#multiple-events