2009-07-13 8 views
0

特定のハイパーリンクをクリックしているときに無効にしたいwindow.onbeforeunloadイベントがあります。1つのリンクからイベントを削除すると、すべてのものに影響するようです。

$(function() { 
     $("a#<%= lockUnlock.ClientID %>").click(function() { 
      window.onbeforeunload = null; }); 
    }); 

をしかし、私は他のリンクをクリックしたときにイベントは発生しません:

私は、次のjQueryを使用しています。

これを回避する手段はありますか?

EDIT(詳細):

私は

lockUnlockは、更新パネルの上にあるリンクボタンでasp.netを使用しています。リンクボタンが押され、部分ページがウィンドウを戻った後、アンロードがもう動作しません。

答えて

0

私が助けることができるかどうかわかりませんが、<%= lockUnlock.ClientID %>がヌルではないと確信していますか?明らかに、空の文字列を評価している場合、すべてのアンカーがこのクリックハンドラにバインドされてしまいます。

また、このjavascriptを自動生成していますか?そうでない場合、<%= lockUnlock.ClientID %>は実際のIDに置き換えられますか?私はASPやASP.NETをPHPと同じくらい使っているとは言えないので、この置き換えが発生するとちょっと錆びます。

うまくいけば、それはすべて理解できます!

+0

あなたは何かにいるかもしれません。私はこれを単純なhtml形式でコピーしましたが、うまくいきます。 –

0

ClientIDはPage.PreRenderイベントにのみ設定されます。 Page.Loadでこれを行う場合、ClientIDは空の値(またはnull)を持ちます。これはおそらく、jQueryセレクターが期待しているものではありません。

関連する問題