2016-02-28 5 views
0

У меня есть две идентичные функции onClick в двух разных div, чтобы сохранить динамически сгенерированную строку в локальную переменную. У меня возникли проблемы с очисткой локальной переменной после ее копирования - что приводит к невозможности использования второй функции onClick во втором div..remove() не работает на onClick

HTML

<div class="container" onclick="copyThis('#link')"> 
    <span class="dynamicallyGeneratedText"></span> 
</div> 

<div class="container" onclick="copyThis('#link')"> 
    <span class="dynamicallyGeneratedText"></span> 
</div> 

JS

function copyThis(e) { 
    var $link = $('<input>'); 
    $("body").append($link); 
    $link.val($(e).text()).select(); 
    document.execCommand('copy'); 
    $link.remove(); 
} 

Что я делаю неправильно?

+0

Является '# link' элемент в' document'? – guest271314

+0

@ guest271314 спасибо, да это – codinginnewyork

+0

Тогда 'js' at Question, кажется, возвращает ожидаемые результаты? Невозможно воспроизвести _ «возникли проблемы с очисткой локальной переменной после ее копирования, что приводит к тому, что она не может использовать вторую функцию onClick во втором div» _ – guest271314

ответ

0

Попробуйте изменить e к event.target в

function copyThis() { 
    var $link = $("<input>"); 
    $("body").append($link); 
    $link.val($(event.target).text()).select(); 
    document.execCommand("copy"); 
    $link.remove(); 
} 

удалить #link на

onclick="copyThis()" 
+0

e.target, похоже, нарушит мой код:/ – codinginnewyork

+0

@YNINNY Используйте 'event.target' – guest271314

Смежные вопросы