Скрыть родительский div при нажатии с помощью jQuery

Поэтому я пытаюсь написать супер простой скрипт, который позволит пользователю выкинуть любую ссылку или кнопку с classом .close внутри div, и когда эта .close ссылка будет нажата, она автоматически закрывает родительский контейнер.

Вот что я сейчас пытаюсь работать с: JSFiddle

Код, который я сейчас пытаюсь использовать:

HTML

 

This is a notice that is green.

CSS

 .well { background: #f9f9f9; border-color: #f1f1f1; border-style: solid; border-width: 1px; padding: 15px 20px; } .notice { margin: 15px 0; padding: 0px 15px; } .well.bg-green { background: #dff0d8; border-color: #d6e9c6; color: #468847; } .close { color: #000; filter: alpha(opacity=20); float: right; font-size: 21px; font-weight: bold; line-height: 1; margin-top: 15px; opacity: .2; text-shadow: 0 1px 0 #fff; } .close:hover, .close:focus { color: #000; cursor: pointer; filter: alpha(opacity=50); opacity: .5; text-decoration: none; } button.close { background: transparent; border: 0; cursor: pointer; padding: 0; -webkit-appearance: none; -moz-appearance: none; } 

JavaScript (jQuery)

 $('.close').live("click", function () { $(this).parents('div').fadeOut; }); 

Дайте мне знать, если мой вопрос не имеет смысла или если требуется более подробная разработка. Спасибо!

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

  • live() не существует в версии jQuery в вашей скрипке (устарела в 1.7, удалена в 1.9)
  • fadeOut – это функция (вам не хватало парнеров для ее выполнения)

http://jsfiddle.net/KF7S6/

 $('.close').on("click", function () { $(this).parents('div').fadeOut(); }); 

Если вы хотите, чтобы он работал с динамическими элементами, используйте эту версию:

 $(document).on('click', '.close', function () { $(this).parents('div').fadeOut(); }); 

рабочая демонстрация http://jsfiddle.net/gL9rw/

Проблема была .live которая устарела сейчас.

Если вы увлечены: что случилось с живым методом jQuery? :)

код

 $('.close').on("click", function () { $(this).parents('div').fadeOut(); }); 

http://jsfiddle.net/6Xyn4/4/

 $('.close').click(function () { $(this).parent().fadeOut(); }); 

Рекомендуется использовать .click() вместо устаревших .live()

Попробуйте это, это должно быть fadeOut() not fadeOut

 $('.close').click(function () { $(this).parents('div').fadeOut(); }); 

.live () мертв. использовать .on () делегатов. Также вы что-то пропустили, проверьте ниже

 $('body').on("click", '.close', function () { $(this).parents().fadeOut(); }); 

скрипка