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. #coverIDのimgにonclickを設定するだけです。div(または親要素)には「cover」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 に答える