#javascript #jquery
#javascript #jquery
Вопрос:
Захват всех ссылок.
$("a").live("click", function() {
alert($(this).attr("class"));
});
jquery.truncate.js добавляет это.
obj.html(str1 "<div class='truncate-ellipsis' style='display: inline;'>" options.ellipsisText
"</div><div class='truncate-more' style='display: none;'>" str2 "</div>"
"<div class='clear'></div>"
"<a href='#' class='truncate-more-link'>" options.moreText "</a>"
);
Но когда я нажимаю «showmore» на усеченный объект (который представляет собой описание, превышающее определенное количество символов), щелчок не фиксируется! Есть мысли?
Содержимое добавляется с помощью ajax-вызова на сервер, чтобы получить кучу комментариев пользователей, комментарии, которые заканчиваются на way to much, усекаются! Спасибо
Ответ №1:
Использовать (jQuery автоматически преобразует .attr('className')
— class
атрибут вызывается className
в JavaScript, поскольку class
это зарезервированное (пока неиспользуемое) ключевое слово. class
в className
)
И поскольку пустые предупреждения не будут отображаться, это, скорее всего, причина, по которой вы думаете, что ваши обработчики не запускаются. На самом деле, это одна из причин, почему console.log()
намного лучше для отладки, чем alert()
хотя я часто предпочитаю администрирование alert()
из-за того, что он просто отображается без необходимости открывать Firebug.
Другой причиной того, что ваш код не работает, может быть click()
обработчик где-то в дереве DOM, который вызывает e.stopPropagation()
и, таким образом, предотвращает передачу события наверх, где прослушивается обработчик текущего события.
Комментарии:
1. Что ж, отличная информация, но не правильный ответ.
$("a").live(...)
работает со ВСЕМИ другими ссылками на странице. Даже другие, созданные вызовом на стороне сервера, за исключением этих….2. предупреждение срабатывает независимо от того, что … jsfiddle.net/garreh/y9Usw работает с
.attr('class')
— попробуйте изменить его на.attr('hjirhig')
— он по-прежнему будет выдавать предупреждение, просто показывая undefined. Протестировано в Firefox 43. @Gary: Нет, если аргумент равен
undefined
4. Хорошо, вы поняли, я не осознавал, что jquery.truncate вызвал его остановку. Drr как глупо с моей стороны! не могу поверить, что я этого не видел. Спасибо, что сказали очевидное.
5. Предупреждения будут срабатывать, если аргумент не определен