2

関数の親の<div>次のa をターゲットにしようとしています。、、などを試してみましたが、うまくいきませんでした。アイデアはありますか?<li><div>show_projectinfo().next().closest()

機能は、クリックa.more_infoするli.slider imgと非表示になることです...完全に範囲外かどうかはわかりません...これは繰り返されるdivであるため、IDだけを使用することはできません。

マークアップ:

    <li class="info">
        <a id="previous-slider"> < </a>
        <span>01/15</span>
        <a id="next-slider" href="javascript:void(0)"> > </a>  
        <a class="more_info" href="javascript:void(0)" onclick="show_projectinfo()">Info</a>
    </li>
    <li class="slider">
        <img src="img/horizontal.jpg" alt="horizontal" width="624" height="429">
    </li>

これはスクリプトです:

    function show_projectinfo(){
        $(this).closest('.slider img').hide();
        $('.info_content').fadeIn();
    }
4

5 に答える 5

3

onclick基本的な問題は、メソッドを jquery にバインドするのではなく、メソッドを呼び出していることです。

使用方法では、thisクリックされた要素ではなく、ウィンドウを参照します。

function show_projectinfo(e){
    e.preventDefault();
    $(this).parent().next().find('img').hide();
    $('.info_content').fadeIn();
}

$(function(){
    $('.more_info').click(show_projectinfo);
});

onclickhtmlから属性を削除します


属性を使用する必要がある場合 (すべきではありませんが)、それを引数としてonclick渡しthisます。

function show_projectinfo(element){
    $( element ).parent().next().find('img').hide();
    $('.info_content').fadeIn();
}

<a class="more_info" href="javascript:void(0)" onclick="show_projectinfo(this)">Info</a>
于 2013-04-23T15:05:38.640 に答える
0

とを.closest使用する代わりに、 で画像を選択します。.parent.next.find

このjsFiddleをチェックしてください:

$("a.more_info").bind("click", function(e){
    e.preventDefault();
    $(this).parent("li").next("li.slider").find("img").hide();
    $('.info_content').fadeIn();
    return false;
});
于 2013-04-23T15:05:23.530 に答える
0
$('.more_info').click(function(e){
    e.preventDefault();
    $(this).parent().next().find('img').hide();
    $('.info_content').fadeIn();
});
于 2013-04-23T15:04:13.947 に答える