2012-02-23 18 views
0

私はjQuery UI Dialogを作成し、ダイアログが表示された後、ユーザーがクリックするたびにダイアログが閉じられます。 bodyタグにclickイベントを追加してこれを実現しました。オーバーライドされたイベントを(おそらく)トリガする方法は?

$("body").click(function() { 
    $("#myDialog").dialog("close").dialog("destroy"); 
}); 

それは私が使用している3rd party Grid APIの内部を除いて正常に動作し、このグリッドAPIのソースコードを発見、それは以下のようなのonclickイベントに定義:私はグリッド、ログ内でクリックすると

this.obj.onclick = function(e){ 
    console.log("grid API clicked"); 
    this.grid._doClick(e||window.event); 

    if (this.grid._sclE) { 
     this.grid.editCell(e||window.event); 
    } 

    (e||event).cancelBubble=true; 
}; 

をMSG、私はfalseにこれを設定した場合ので、私はライン(e||event).cancelBubble=true;

で指定されたイベントは、身体のクリックイベントにバブルアップされていないと思う私の放火魔に示されているが、私の体のクリックイベントがトリガされていない「グリッドAPIは、クリックされました」クレクグリッド上のkは機能せず、サードパーティのAPIでコードを変更したくない。

ですから、ボディクリックを行うための回避策はありますか?

答えて

0

それを行うための最善の方法かもしれない単純化していないが、あなたはグリッドAPIのソースを編集して幸せならそれにこれを追加...

$("body").click(); 

それは上の定義されたクリックイベントをトリガしますボディエレメント。それがうまくいかなければ何か別のことが起こっている。

+0

私はそれが片方向であることに同意します。私が知っている限り、Grid APIを変更することなく目標を達成する方法はありません。 –

関連する問題