2016-08-05 14 views
0

私は<asp:textbox id="TextBoxPassnummer" OnClick="openPopup()" />を作成しました。ユーザーがテキストボックスをクリックすると、ポップアップウィンドウがJSを経由して開きます。OnClickイベントを1回だけ実行するにはどうすればよいですか?

function openPopup(){ 
    var myWindow = newwindow = window.open("http://localhost:59969/test.aspx", "Anleitung", "width=200, height=800, toolbars=0, width=950, left=200,top=200,scrollbars=1,resizable=1"); 
} 

ポップアップ-Windowsがテキストボックス(TextBoxPassnummer)に入力する内容の情報が含まれています。ユーザーがPopupwindowを閉じた後、openPopup()メソッドは、テキストボックスをクリックして情報を入力すると、再度実行しないでください。上記のコードでは、毎回PopupWindowsが開きます。

どのように私はこの問題、任意の提案を解決するのですか?おかげで...

も、このようにそれをしようとしました:あなたが利用可能にjQueryを使用している場合、あなたは oneを使用することができます

 <% bool windowHasOpened = false;  %> 

    if(windowHasOpened == false){ 


    function openPopup(){ 


     var myWindow = newwindow = window.open("http://localhost:59969/test.aspx", "Anleitung", "width=200, height=800, toolbars=0, width=950, left=200,top=200,scrollbars=1,resizable=1"); 
     <%windowHasOpened = true; %> 
    } 
+1

イベントの添付方法は表示されていませんが、jQueryの 'one( 'click'、fn)'は必要な処理を行います。 –

+0

はい、あります。質問の最初の行を見てください。 @RoryMcCrossan –

+0

ああ、私はそれを逃した。 –

答えて

3

。これは1回限りのイベントリスナーをバインドします。このイベントリスナーは、最初の使用後にバインド解除されます。これを使用する場合は、要素からonClick="openPopup()"を削除する必要があります。

function openPopup() { 
 
    alert("popup opend"); 
 
} 
 

 
$("#TextBoxPassnummer").one("click", openPopup);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<textarea id="TextBoxPassnummer"></textarea>

+0

あなたのソリューションでTextBoxにopenPopup関数をどのようにアタッチするのですか? @eisbehr –

+0

jQueryがこれを行います。 '$(" TextBoxPassnummer ")'はテキストの少年を選択し、 '.one(" click "、openPopup);'それに 'click'イベントを添付します。 @AlessandroMinneci – eisbehr

0

次の2つのオプションがあります。

ストア変数windowHasOpenedfalseに設定します。 openPopupの場合は、windowHasOpened === falseの場合のみウィンドウを開き続けます。初めて関数が呼び出されたときは、windowHasOpened = trueと設定します。

OR

(ドキュメントがロードされた後のコードが実行されることを確認してください)のようなコードにイベントリスナーを追加します。 openPopupで次に

document.getElementById("TextBoxPassnummer").addEventListener('click', openPopup);

、次のようにリスナーを削除します。

document.getElementById("TextBoxPassnummer").removeEventListener('click', openPopup);

したい場合は、jQueryのようなライブラリを使用することができますが、それはやり過ぎ(プレーンJavaScriptが難しいことではありません、おそらくです)。

+0

私はあなたの方法で私の質問にスナップを追加しましたが、それは働かない、あなたは私が間違っていたことを教えてくれますか? (私の質問の末尾に) –

+0

あなたは私がすぐに尋ねる私を助けることができますか?私は尋ねることが禁止されている私はdidntする方法を知っていると私はこれを尋ねたときに戻ってprogrammする方法を知っています。あなたは本当にアップヴォー<3 –

関連する問題