Поскольку он работал для :contains("Cancel")
, наиболее вероятная причина того, что он не срабатывает, заключается в том, что Telerik динамически добавил JavaScript после загрузки страницы .
В этом случае с помощью делегированного обработчика события , прикрепленного к неизменяющемуся предку, это будет исправлено.
1010 *, например *
$(document).on('click', 'a[href^="javascript:"]', function () { selected = true; });
Он работает, слушая, как событие (щелчок) всплывает до неизменного предка (document
по умолчанию, ничто иное не является более близким / удобным). Затем затем применяет селектор к элементам в цепочке пузырьков. Затем затем запускает функцию для любых соответствующих элементов, вызвавших событие . Для этого требуется, чтобы селектор существовал только в время события , а не в тот момент, когда событие было зарегистрировано.
Делегированные события имеют более быстрое время соединения (поскольку они подключают обработчик только к одному элементу), и любая незначительная задержка, добавленная во время события, останется незамеченной, поскольку вы просто не можете щелкнуть мышью достаточно быстро, чтобы она показала:)
Примечание. Не используйте 'body'
для делегированных событий, так как в нем есть ошибка, связанная со стилем, которая может привести к тому, что события мыши не будут всплывать до body
(если вычисленная высота тела равна 0).