0
    $(document).ready(function()
    {
        $("#cover img").click(function(event)
        {
            var selected_script = $(this).attr('id');

            //alert(selected_script);
        //alert('#run_'+selected_script);

            $('#run_'+selected_script).hide();
        });
    });

<div>
    <img id="run_0" src="play.png" />
</div>

上面的代码在单击时不会隐藏图像。当我发出警报时,我得到了正确的 ID 值。

我错过了什么?

谢谢

4

5 回答 5

1

你不是想把它隐藏在上面的代码中,只是做一个简单的.hide()

$("#cover img").on('click', function(e) {
    $(this).hide();

    // If you want to know why your above code isn't working, it is because you have:
    // $('#run_'+selected_script).hide();
    // selected_script already has the entire ID of run_0, etc
    // so this is outputting $('#run_run_0').hide(); why it doesn't work

    $('#' + selected_script).hide(); // this outputs $('#run_0').hide(), and will work!
});

jsFiddle 演示

于 2012-08-29T13:51:52.617 回答
1
  $(document).ready(function()
    {
        $("#cover img").click(function(e)
        {
            $(this).hide();
        });
    });

<div id='cover'>
    <img id="run_0" src="play.png" />
</div>
  1. 您的“selected_script”变量将包含 id。为什么还要在前面加上“运行”?
  2. 您只希望#cover id 中的 img 具有 onclick。您的 div(或父元素)应具有“封面”ID。
于 2012-08-29T13:51:54.510 回答
1
$(document).ready(function()
    {
        $("#cover img").click(function(event)
        {    
            $(this).hide();
        });
    });
于 2012-08-29T13:52:15.437 回答
0

你可以直接隐藏它

$(this).hide();
于 2012-08-29T13:52:22.420 回答
0

这就是您的代码不起作用的原因:http: //jsfiddle.net/prsjohnny/wp5Bs/

但是(如果你是 jQuery 新手)你已经有了你要找的元素,那为什么还要再找呢?

这效率更高。

$(document).ready(function()
{
    $("#cover img").click(function(event)
    {
        // just use $(this) instead of $('#'+selected_script) and 
        // having jquery traverse the DOM again looking for it.
        $(this).hide();
    });
});​
于 2012-08-29T13:59:26.097 回答