Начиная с jQuery 1.7, вы должны использовать jQuery.fn.on
:
$(staticAncestors).on(eventName, dynamicChild, function() {});
До этого рекомендуется использовать live()
:
$(selector).live( eventName, function(){} );
Однако live()
устарел в 1.7 в пользу on()
и полностью удален в 1.9. Подпись live()
:
$(selector).live( eventName, function(){} );
... может быть заменена следующей on()
сигнатурой:
$(document).on( eventName, selector, function(){} );
Например, если ваша страница динамически создавала элементы с именем класса dosomething
, вы привязывали бы событие к родительскому, который уже существует (здесь есть нуль проблемы, вам нужно что-то, что существует для привязки, не привязка к динамическому контенту), это может быть (и самый простой вариант) - document
. Хотя иметь в виду document
, возможно, не самый эффективный вариант .
$(document).on('mouseover mouseout', '.dosomething', function(){
// what you want to happen when mouseover and mouseout
// occurs on elements that match '.dosomething'
});
Любой родитель, который существует в момент привязки события, прекрасен. Например,
$('.buttons').on('click', 'button', function(){
// do something here
});
применимо к
Да, это несимвольный журнал аварий. Проблема в том, что вызов [-SKPaymentQueue addPayment:]
передал неверный указатель на платеж. Вот что говорит журнал:
Тип исключения: EXC_CRASH (SIGABRT)
blockquote>и
Информация, специфичная для приложения: [1111 ]
abort () с именем
blockquote>Это указывает на то, что некоторый фрагмент кода явно вызывал функцию для прерывания работы приложения. Это происходит потому, что операционная система обнаружила, что какой-то неверной информации была передана функции, и определила, что она не может продолжить работу с неверными данными, поэтому ее единственный выбор - отмена.
Обратный след показывает, какие функции были вызваны для прерывания:
Last Exception Backtrace: 0 CoreFoundation 0x1a4531ea4 __exceptionPreprocess + 228 1 libobjc.A.dylib 0x1a3701a50 objc_exception_throw + 55 2 CoreFoundation 0x1a4438484 +[NSException raise:format:] + 115 3 StoreKit 0x1b860fc14 -[SKPaymentQueue addPayment:] + 675 4 mapdocuments 0x100e5c1e8 0x100dfc000 + 393704 5 mapdocuments 0x100e65ddc 0x100dfc000 + 433628
Они в обратном порядке вызова. Поэтому некоторый код в приложении или библиотеке
mapdocuments
вызывается в рамкахStoreKit
, в частности, метод-[SKPaymentQueue addPayment:]
. Этот метод увидел, что переданное значение было недопустимым, и вызвало исключение. Исключение не было обнаружено при использовании блока@try
/@catch
, поэтому ОС прервала выполнение.К сожалению, поскольку символы не были предоставлены, мы не знаем точную строку, которая вызвала
-addPayment:
с неверными данными. Однако, если вы создали приложение, у вас должны быть символы для него, и я думаю, что можно символизировать аварийный журнал, используя их. Я сам этого не сделал.