0

divをクリックしたときにdivを非表示にしたい。そのために、完全に機能する次のコードがあります。

var box3=$(".despcnt");
box3.mouseup(関数 () {
    false を返します。
});

$(this).mouseup(関数 (a) {
    if(!($(a.target).parent(".despcnt").length>0)){
        box3.removeClass("恐竜");box3.hide()
    }
});

しかし、私はクラスから除外したいです。クラス desplcnt を持つリンクを despcnt するため、巣穴の外側をクリックしたり、同じリンクを閉じたりすると、うまくいきませんでした。

何か案が?

HTML

<a class="desplcnt" href="#">Link</a>
<div class="despcnt">
    <ul>
        <li><a data-value="1" href="#">Title</a></li>
    </ul>
</div>
4

2 に答える 2

2
var $despcnt = $(".despcnt");

/* Hide the popup whereas clicking outside */
$(document).on("click", function() {
  $despcnt.hide();
});

/* Don't hide the popup whereas clicking inside */
$despcnt.on("click", function(evt) {
    evt.stopPropagation();
});
于 2013-01-12T00:23:17.597 に答える
0

そのため、タイトルをクリックすると、リンクを非表示にする必要があります。しかし、他の場所をクリックすると、タイトルが非表示になりますか? その場合は、イベントを割り当てTitleて、mouseupそこからリンクを非表示にしてから、 を使用したときに window に接続されe.stopPropagation()たグローバルをバイパスするためにを使用できます。ここにデモがあります:http://jsfiddle.net/pUnvR/1/mouseupthis

コードは次のとおりです。

html

<a class="desplcnt" href="#">Link</a>
<div class="despcnt">
 <ul>
    <li><a data-value="1" href="#">Title</a></li>
 </ul>
</div>

js

var box3=$(".despcnt");
box3.mouseup(function (e) {
    $(".desplcnt").hide();
    e.stopPropagation();
});

$(this).mouseup(function (a) {
    if(!($(a.target).parent(".despcnt").length>0)){
        box3.removeClass("dino");
        box3.hide();
    }
});
于 2013-01-12T00:23:53.803 に答える