#jquery #events #get #copy #fetch
#jquery #Мероприятия #получите #Копировать #извлечение
Вопрос:
Название в основном объясняет это. У меня есть элемент img. Двойной щелчок по нему создает новый элемент img, но я хочу, чтобы он использовал тот же src, что и тот, на котором я дважды щелкнул. Следовательно, я хочу, чтобы этот единственный скрипт работал для нескольких разных изображений. Я не уверен, как извлечь src и вставить его.
Кроме того, к копиям будет добавлен класс, который идентифицирует их как копию. Я пытался создать скрипт для удаления элементов с классом ‘copy’ при двойном щелчке, но это не работает.
Ответ №1:
Основываясь на вашем вопросе, вот правильное решение вашей проблемы.
Двойной щелчок по нему создает новый элемент img, но я хочу, чтобы он использовал тот же src, что и тот, на котором я дважды щелкнул….Кроме того, к копиям будет добавлен класс, который идентифицирует их как копию.
$("img:not(.copy)").live("dblclick", function(){
$("body").append($(this).clone().addClass("copy"));
});
Это используется, .live()
однако может быть изменено на use .dblclick()
в зависимости от того, загружаются ли оригиналы не динамически. img:not(.copy)
Будут предназначены только для изображений, у которых нет класса copy. Текущий элемент this
(который является <img/>
) является than clone()
и добавлен класс copy.
Я пытался создать скрипт для удаления элементов с классом ‘copy’ при двойном щелчке, но это не работает.
$("img.copy").live("dblclick", function(){
$(this).remove();
});
Чтобы настроить таргетинг на обратное, мы просто хотим настроить таргетинг на изображения с классом .copy
и просто вызвать .remove()
, чтобы удалить элемент. Здесь требуется примечание .live()
(или .delegate()
), поскольку элементы генерируются после dom ready.
Комментарии:
1. Я пытаюсь реализовать ваш код, но по какой-то причине он не работает. Я вставил простой скрипт класса переключения в свой html-заголовок, в тег script, и даже это не работает.
2. @Jason, убедитесь, что в документе все готово,
$(function(){});
3. Упс, у меня не было jquery.js файл, связанный с документом. Я забыл, что работаю на странице, отличной от той, которая уже есть. Спасибо за всю вашу помощь!
4. Источник для элемента clone определяется именем класса. Однако у меня есть несколько экземпляров этого контейнера div, вызываемого этим классом. При создании клонирования создается клон для каждого экземпляра этого класса контейнера. Есть ли способ изолировать копию в этом конкретном контейнере?
5. Это должно быть возможно, если бы вы могли создать демонстрацию в jsfiddle, возможно, смогли бы предложить некоторую дополнительную помощь.
Ответ №2:
Взгляните на http://api.jquery.com/attr /
Ваш код должен быть примерно таким
$(document).ready(function(){
//need to use live to have newly generated images bind to the click
$('img').live('click', function(){
$('body').append('<img src="' $(this).attr('src') '" />');
});
});
Ответ №3:
Используйте .attr()
метод jquery
.attr('src', value); // to set value
.attr('src'); // to get value
$(document).ready(function(){
$("img").bind("click", function() {
$(document.createElement("img"))
.attr({ src: $(this).attr('src'); }).appendTo(this.parent());;
});
});