[英]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.