如何让 OnClick 事件只执行一次?
How can I get a OnClick Event to execute only once?
我创建了一个 <asp:textbox id="TextBoxPassnummer" OnClick="openPopup()" />
。当用户点击文本框时,弹出窗口 windows 通过 JS 打开:
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
)。用户关闭弹出窗口后,如果他单击文本框输入信息,方法 openPopup()
不应再次执行。使用上面显示的代码,PopupWindows 每次都会打开。
我该如何解决这个问题,有什么建议吗?谢谢...
也这样试过:
<% 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; %>
}
如果您有 jQuery 个可用,您可以使用 one
。它将绑定一个一次性事件侦听器,该侦听器在第一次使用后自行解除绑定。使用它时,您必须从 #TextBoxPassnummer
元素中删除 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>
您有两个选择:
存储一个变量windowHasOpened
,将其设置为false
。然后里面openPopup
只继续打开windowifwindowHasOpened === false
。第一次调用该函数时,设置windowHasOpened = true
.
或
在代码中添加事件侦听器(确保代码在文档加载后运行)。
document.getElementById("TextBoxPassnummer").addEventListener('click', openPopup);
然后在openPopup
中,像这样删除监听器:
document.getElementById("TextBoxPassnummer").removeEventListener('click', openPopup);
如果你愿意,你可以使用像 jQuery 这样的库,但它可能有点矫枉过正(普通的 JavaScript 并不难)。
我创建了一个 <asp:textbox id="TextBoxPassnummer" OnClick="openPopup()" />
。当用户点击文本框时,弹出窗口 windows 通过 JS 打开:
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
)。用户关闭弹出窗口后,如果他单击文本框输入信息,方法 openPopup()
不应再次执行。使用上面显示的代码,PopupWindows 每次都会打开。
我该如何解决这个问题,有什么建议吗?谢谢...
也这样试过:
<% 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; %>
}
如果您有 jQuery 个可用,您可以使用 one
。它将绑定一个一次性事件侦听器,该侦听器在第一次使用后自行解除绑定。使用它时,您必须从 #TextBoxPassnummer
元素中删除 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>
您有两个选择:
存储一个变量windowHasOpened
,将其设置为false
。然后里面openPopup
只继续打开windowifwindowHasOpened === false
。第一次调用该函数时,设置windowHasOpened = true
.
或
在代码中添加事件侦听器(确保代码在文档加载后运行)。
document.getElementById("TextBoxPassnummer").addEventListener('click', openPopup);
然后在openPopup
中,像这样删除监听器:
document.getElementById("TextBoxPassnummer").removeEventListener('click', openPopup);
如果你愿意,你可以使用像 jQuery 这样的库,但它可能有点矫枉过正(普通的 JavaScript 并不难)。