-1

私はjqueryで方法を見つけようとしています.divをクリックすると、子のdivクラスがクラスを「無効」にする必要があります。

例えば:

<div class="onclick">
    <div class="Infobox disable"></div>
</div>
<div class="onclick">
    <div class="Infobox disable"></div>
</div>
<div class="onclick">
    <div class="Infobox disable"></div>
</div>
<div class="onclick">
    <div class="Infobox disable"></div>
</div>

そして、それは私のjqueryです:

$('.infoBox').each(function(){
    $('.onclick').click(function(){
        $('.infobox').removeClass('disable');
    });
});

これは機能しますが、クリック後、すべてのインフォボックス div がクラスの無効化を削除しますが、最初の onclick div をクリックすると、クラスのインフォボックスを持つ最初の div のみがクラスの無効化を削除することは望ましくありません

それらを分離するために、インフォボックスにさらにクラスを与えたくありません。

問題を解決する可能性はありますか?

挨拶ティモス

4

3 に答える 3

3

Try this:

$('.onclick').click(function(){
    $(this).children('.infobox').removeClass('disable');
});

Your code:

$('.infobox').removeClass('disable');

will remove the disable class from all the divs. You need to use the div which have been clicked in the current scope using the this keyword, to resolve your issue.

于 2013-09-06T14:14:29.230 に答える
1

You need to find the Infobox element which is inside the clicked onclick element, also you have a spelling error in Infobox (small i).

Your code is not working because if the case problem, even if it is fixed when you click on one onclick element the disable class will be removed from all Infobox elements because of the global selector $('.Infobox')

it should be

$('.onclick').click(function(){
    $(this).children('.Infobox').removeClass('disable');
});
于 2013-09-06T14:14:20.307 に答える