Найти src html и вставить этот src во вновь созданный объект - PullRequest
0 голосов
/ 08 апреля 2011

Название в основном объясняет это.У меня есть элемент img.Двойной щелчок создает новый элемент img, но я хочу, чтобы он использовал тот же src, что и тот, на котором я дважды щелкнул.Следовательно, я хочу, чтобы этот единственный скрипт работал для нескольких разных изображений.Я не уверен, как получить src и вставить его.

Также к копиям будет добавлен класс, который идентифицирует их как копию.Я пытался создать скрипт для удаления элементов с классом «copy» при двойном щелчке, но он не работает.

Ответы [ 3 ]

2 голосов
/ 08 апреля 2011

Основываясь на вашем вопросе, здесь есть правильное решение вашей проблемы.

Двойной щелчок создает новый img элемент, но я хочу использовать тот же src как тот, который я дважды щелкнул .... Кроме того, к копиям будет добавлен класс, который идентифицирует их как копию.

$("img:not(.copy)").live("dblclick", function(){
    $("body").append($(this).clone().addClass("copy"));
});

Используется .live(), однако его можно изменить на .dblclick() в зависимости от того, загружаются ли оригиналы динамически. img:not(.copy) будет нацеливаться только на изображения, которые не имеют класса копирования. Текущий элемент this (то есть <img/>) равен clone() и добавил класс копирования.

Я пытался создать скрипт для удалять элементы с классом 'copy', когда дважды щелкнул, но это не работает.

$("img.copy").live("dblclick", function(){
    $(this).remove();
});

Чтобы нацелить обратное, мы просто хотим нацелить изображения с классом .copy и просто вызвать .remove(), чтобы удалить элемент. Примечание .live() (или .delegate()) требуется здесь, так как элементы генерируются после того, как dom ready.

Пример кода на jsfiddle

1 голос
/ 08 апреля 2011

Посмотрите на 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')+'" />');
 });
});
0 голосов
/ 08 апреля 2011

Используйте .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());;
    });
});
...