1

このコードが Firefox と IE で機能しないのはなぜですか? クロームでいいです。

$(document).click(function(e) {
    if ($(".contentIconDesk").hasClass('markIconDesk')) {           
        $(".contentIconDesk").removeClass('markIconDesk');          
        wndSelected = "";   
    }       
});

function markMe(icon, wnd) {
    event.stopPropagation();            
    if ($('#'+icon).hasClass('markIconDesk')) {
        $(".contentIconDesk").removeClass('markIconDesk');
        wndSelected = "";               
    } else {
        $(".contentIconDesk").removeClass('markIconDesk');
        $('#'+icon).addClass('markIconDesk');
        wndSelected = wnd;                  
    }       
};

この関数は、HTML に div がMarkMe();ある場合に呼び出されます。onClick()問題は、event.stopPropagation(). クリックしてクラスを追加すると、ブラウザは のクリックをキャッチします$(document)

上記のコードを使用する代わりに良い提案があれば、それは素晴らしいことです.

4

4 に答える 4

1

eventこのコードでは が定義されていないため:

event.stopPropagation();
于 2013-04-19T19:21:10.447 に答える
1

MarkMe関数のパラメーターとしてイベントを渡す必要があります

function markMe(icon, wnd, event) {
   event.stopPropagation(); 
   //...
}

次に、それを呼び出すと、次のようになります。

$('#myDiv').click(function(e) {
    //...
    MarkMe(icon, wnd, e);
});
于 2013-04-19T19:24:04.073 に答える