2014-10-31 130 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。 ATTR( 「ID」)。

+0

另請參見類似的問題: http://stackoverflow.com/questions/2711020/jquery-and-hide-a-div-on-a-click/2711199#2711199 – Kolban 2014-10-31 14:56:27

+0

你爲什麼要加'$(this) 。.attr( 「ID」)隱藏();'?出於某種原因你需要身份證嗎?如果沒有,你應該這樣做:'$(this).hide();' – CodeGodie 2014-10-31 14:58:05

回答

2

除非你努力的目標另一個元素,只需隱藏this(這將是class="reveal"元素點擊):

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

與您的代碼的問題是,attr返回一個字符串,你再努力上運行:)

hide():一個更好的DOM準備的快捷方式很簡單:

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

太棒了。我並不期待這個答案很快!這對我有用。 – user3468711 2014-10-31 15:06:14

+1

@ user3468711:快是這裏的遊戲名稱(*快或無點*):) – 2014-10-31 15:06:58

+0

@ user3468711是的,它被稱爲*西部最快的槍*。在像這樣的問題中,大多數人可以查看並瞭解解決方案。但是隻有先回答的人才能獲得積分。 – 2014-10-31 15:10:46

1

你試圖用attr('id')隱藏屬性,而不是圖像。使用方法:

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

隱藏圖像。

+1

一個正確的答案,但是對於什麼是錯誤的一些解釋性信息會更好。 – JakeParis 2014-10-31 14:57:50

+0

這個答案已經張貼在 – CodeGodie 2014-10-31 14:59:49

+0

以上@CodeGodie是正確的。我們同時發佈了它;) – Refilon 2014-10-31 15:00:14