[英]Set onclick event using script
我想讓我的script
設置<div>
的onclick
屬性。
我使用這個 Html 代碼:
<div id="forgotpass">Forgot Password?</div>
我希望當用戶單擊<div>
時運行一個forgotpass()
函數,但我不想使用它:
<div id="forgotpass" onclick="forgotpass();">Forgot Password?</div>
或者,如果您不使用 jQuery:
document.getElementById('forgotpass').onclick = forgotpass;
純JavaScript:
function addListener(element, eventName, handler) {
if (element.addEventListener) {
element.addEventListener(eventName, handler, false);
}
else if (element.attachEvent) {
element.attachEvent('on' + eventName, handler);
}
else {
element['on' + eventName] = handler;
}
}
function removeListener(element, eventName, handler) {
if (element.addEventListener) {
element.removeEventListener(eventName, handler, false);
}
else if (element.detachEvent) {
element.detachEvent('on' + eventName, handler);
}
else {
element['on' + eventName] = null;
}
}
addListener(document.getElementById('forgotpass'), 'click', forgotpass);
查詢:
$(document).ready(function() {
$("#forgotpass").click(forgotPass);
});
要么:
$(document).ready(function() {
$("#forgotpass").click(function() {
forgotPass();
});
});
像這樣的東西可能有用..
var div = document.getElementById("forgotpass");
div.onclick=function(){ /*do something here */ };
如果您不添加該功能,則 javascript 將在運行腳本后運行 onclick。
你可以用 jQuery 來做
$("#forgotpass").click(function() {
alert("Handler for .click() called.");
});
在純 JavaScript 中,您可以執行以下操作:
function forgotpass() {
//..code
}
var el = document.getElementById("forgotpass");
el.onclick = forgotpass;
但這是非常天真的,不靈活,可能是一種不好的做法。
如果你使用的是 jQuery,你可以這樣做:
function forgotpass() {
//..code
}
$(document).ready(function() {
$("#forgotpass").click(function() {
forgotPass();
});
});
如果你只需要支持 IE 9+ ( source ),你可以在純 JavaScript 中使用EventTarget.addEventListener
。
function forgotpass() { alert("Hello, world;"). } var element = document;getElementById("forgotpass"). element,addEventListener("click", forgotpass; false);
<button id="forgotpass">Forgot Password?</button>
...
<div>
<input type="button" value="Set Cookie" onclick="setCookie();" />
</div>
<script>
function setCookie() {
console.log('ready to set cookie?');
}
</script>
...
祝你好運!
如果您使用的是 jQuery,最好按如下方式完成。 如果多次執行函數調用,將注冊多個事件句柄。 以下方法確保刪除以前的處理程序
$("#forgotpass").off().on('click', function () {
forgotPass();
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.