2010-12-01 12 views
0

クリックしたときにカレンダーが表示される画像要素を生成するASP.NETのdatepickerコントロール(ソースはありません)があります。 JavaScriptを使用してオンデマンドで画像を無効にしたり有効にしたりします。 img要素に 'disabled'属性を追加すると、ページの一部のスクリプトは常にビジー状態になり、ページはレンダリングを終了しません。私の推測では、無効な属性は何らかの形で矛盾を引き起こしています。JavaScriptのimg要素のカスタムクリックイベントを無効/有効にする方法

次に、ASP.NETコントロールが非選択的に追加するカスタムのクリックイベントを無効にします。クリックイベントを無効にするにはどうすればよいですか? imgが正常に動作するように再有効にするにはどうすればいいですか?私もjQuery 1.4を使用しています。

+0

が文書の準備ができていた場合は無効にしようとしましたか? –

+0

はい。 imgを有効/無効にするチェックボックスがあります。 –

答えて

0
var $img = $('img#yourid'), 
    handler = $img.get(0).onclick; // previous click handler 
// unbind 
$img.unbind('click').click(function(){ 
    alert('new click'); 
}); 
// rebind 
$img.unbind('click').click(handler); 

他のイベントも確認する必要があります(マウス操作など)。

0

私は隠されたdiv要素にクリックイベントのすべてを交換した後、再び再有効化するためにどの、ここに例があります。これを行うには、いくつかのショートカットがあるかもしれません

http://jsfiddle.net/Jbs9V/

が、これは機能します。同様に、あなたはグローバルVARにクリックハンドラを保存し、それからそれらを読み込むことができます:

http://jsfiddle.net/8ZKJR/私は日付ピッカーがものを行うために、テキストコントロールを使用しているため、バグが発生することができることを考える

0

が、もしコントロールが無効になっている、日付ピッカーを続行することはできませんが、ほぼ同じことを行うために、他の属性を使用することができ、あなたのタグにreadonly属性を使用します。

readonly="readonly"

あなたのHTML入力にreadonly属性を使用することができます。

これが役に立ちます。

0

unbind()を使用すると、jqueryを使用してカスタムイベントハンドラを削除できます。

関連する問題