2015-07-07 4 views
1

У меня есть следующий код http://jsfiddle.net/6xcn6gzj/. Мне нужно удалить элемент со страницы с помощью его атрибута, поэтому я выбрал удаление jQuery. Моя проблема в том, что как только я нажимаю на изображение, ничего не происходит. Я попытался вызвать функцию из самого javascript, и она отлично работала. По какой-то причине событие просто не происходит.Функция Onclick не называется

HTML:

<div> 
    <img src="whatever" alt="test" onclick="close('test')"> 
</div> 

Javascript:

console.log('hi'); 
function close(template) { 
    console.log(template); 
    $('body').find('img[alt="'+template+'"]').remove(); 
} 

Консоль регистрации "привет", который указывает на то, что браузер работает нормально, но она никогда не регистрирует имя шаблона. Любая помощь приветствуется.

ответ

7

Две проблемы:

  • Не называйте вашу функцию close, что будет конфликтовать с window.close
  • Ваш скрипку был установлен, чтобы загрузить свой код в обработчик OnLoad, поэтому ваша функция была локальной для этой функции. Изменение скрипку, чтобы загрузить скрипт в <head>http://jsfiddle.net/6xcn6gzj/7/

function doClose(template) { 
 
    console.log(template); 
 
    $('body').find('img[alt="' + template + '"]').remove(); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div> 
 
    <img src="whatever" alt="test" onclick="doClose('test')" /> 
 
</div>

+0

Большое спасибо, отличный ответ. Я приму это через несколько минут. – Ali

+0

Ничего себе, да, LOL, я не думал об этом. – towerofnix

1

Возможно, вам следует просто позвонить this.remove()?

<div> 
    <img src="whatever" alt="test" onclick="this.remove()"> 
</div> 

http://jsfiddle.net/6xcn6gzj/2/

+0

Это не вариант для меня, потому что мне нужно, чтобы удалить более одного элемента с одним щелчком мыши. – Ali

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