2014-10-31 4 views
0

Я пытался выяснить, почему мой код работает неправильно. Я работаю над реализацией браузера игры, и я пытаюсь получить изображение, чтобы скрыть(), когда элемент щелкнул. Мой HTML выглядит следующим образом ...Скрыть изображение при нажатии

<img id="61" class="reveal" width="30px" height="30px" style="position:absolute;" src="img/tile.ico"> 

и мой JQuery выглядит так ...

$(document).ready(function() { 
     $(".reveal").click(function(){ 
     $(this).attr("id").hide(); 
    }); 
    }); 

Проблема, кажется, что я пытаюсь захватить идентификатор элемента, используя $ (это). атр ("ID").

+0

См. Также аналогичный вопрос: http://stackoverflow.com/questions/2711020/jquery-and-hide-a-div-on-a-click/2711199#2711199 – Kolban

+0

Почему вы добавляете '$ (this) . .attr ("ID") скрыть(); '? вам почему-то нужен идентификатор? если нет, вы должны просто сделать это: '$ (this) .hide();' – CodeGodie

ответ

2

Если вы не пытаетесь предназначаться другой элемент, просто скрыть this (который будет class="reveal" элемент щелкнул):

$(document).ready(function() { 
     $(".reveal").click(function(){ 
     $(this).hide(); 
    }); 
    }); 

Проблема с кодом, что attr возвращает строку, которую вы затем пытаетесь запустить hide() на :)

Примечание: лучше DOM готовый ярлык просто:

$(function() { 
     $(".reveal").click(function(){ 
     $(this).hide(); 
    }); 
    }); 
+0

Awesome. Я не ожидал ответа так быстро! Это работает для меня. – user3468711

+1

@ user3468711: fast - это название игры здесь (* быстро или без очков *) :) –

+0

@ user3468711 Да, это известно как * Самый быстрый пистолет на Западе *. В таких проблемах, как это, большинство людей могут смотреть на это и знать решение. Но только тот, кто отвечает первым, получает очки. –

1

Вы пытаетесь скрыть атрибут с attr ('id'), а не с изображением. Использование:

$(document).ready(function() { 
     $(".reveal").click(function(){ 
      $(this).hide(); 
     }); 
    }); 

, чтобы скрыть свое изображение.

+1

Правильный ответ, но было бы лучше с некоторой пояснительной информацией о том, что было не так. – JakeParis

+0

этот ответ уже был опубликован выше – CodeGodie

+0

@CodeGodie, это правильно. Мы отправили его в одно и то же время;) – Refilon

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