2012-02-03 12 views
0

どこかをクリックするたびにコンテキストメニューを非表示にするためのクリックイベントを設定しました。しかし、私は最近、チェックボックス付きのコンテキストメニューをクリックすると隠されないように変更しました。 はここのコードです:理論的にはこのイベントは、一部のクリックでのみ表示され、他の表示では表示されないように見えるのはなぜですか?

document.observe('mouseup', function(event){ 
    var $j = jQuery.noConflict(); 
    if(men_con_afisat == 'da' && anulare_ascundere_men_con == ''){ 
     men_con_afisat = 'nu'; 
     if($j(event.target).attr('class').indexOf('no_hide')<0) 
     { 
      alert($j(event.target).attr('class')); 

      ascundere_men_con(); 
     }  
    } 
    else if(sectiune_pagina == 'proiecte'){ 
     perioada_dezactivare_tragere(); 
     perioada_dezactivare_mutare(); 
    } 
    else{ 

    } 

    coordonate_cursor_x = event.clientX; 
    coordonate_cursor_y = event.clientY;  
}); 

私は上をクリック事はそのクラスの属性に「no_hide」を持っていない時はいつでも、それは私がクリックてる要素のclass属性を印刷する必要があります。しかし、それはほとんどの場合発生しません。関数を変更したコンテキストメニューを表示して非表示にした後でのみ起こります。

私が間違っていることについて何か考えてみませんか?

ascundere_men_con()は、コンテキストメニューを非表示にする関数です。

+3

なぜPrototype.js **と** jQueryを使用していますか? 1つを使用し、それに固執する。しかし、それらを組み合わせてはいけません。 –

+0

私は本当に選択肢がありません。私は約30%が完了したときにウェブサイトで作業を始めました。私はそれに慣れていないプロトタイプを持っていましたが、jqueryが気に入らないことはわかりませんでした。とにかく、それは私の問題を引き起こしているかもしれないと思いますか? – Bogdan

+0

http://jsfiddle.net/またはhttp://jsbin.com/でデモを設定します。 –

答えて

0

men_con_afisat == 'da' && anulare_ascundere_men_con == ''の場合にのみ表示されますが、投稿したコードには、これらの変数(おそらくグローバル変数)が設定されている場所は表示されません。

+0

それは本当に問題だったようです。実際問題は、私がメニューをクリックしたときにhiddeが欲しくなかったということです。私はmen_con_afisatを 'nu'(これは!= 'da')に設定して、シャバン全体が機能しないようにしました。私のjqueryの中で 'men_con_afisat =' nu 'を移動したら、正しく動作します。ありがとう – Bogdan

関連する問題