我可以创建一个按钮元素,并像下面展示的那样添加一个onclick事件。
elem.onclick=function()
{
alert("qweqweqwe");
}
如何使用预定义函数而不是在事件内部定义一个函数?类似于:
elem.onclick=func();
我可以创建一个按钮元素,并像下面展示的那样添加一个onclick事件。
elem.onclick=function()
{
alert("qweqweqwe");
}
如何使用预定义函数而不是在事件内部定义一个函数?类似于:
elem.onclick=func();
为具有定义函数的元素添加事件监听器:
elem.addEventListener("click", func, false); //where func is your function name
https://developer.mozilla.org/zh-CN/docs/Web/API/EventTarget/addEventListener
我发现适合自己的最好方法如下。
const li = document.createElement('li');
li.innerText = "client";
li.id ="key";
li.className = "client-class";
li.setAttribute("onclick","valid;");
1)
function myfunction(){
alert("hello");
}
elem.onclick=myfunction();
var myfunction=function(){
alert("hello");
}
elem.onclick=myfunction;
//or
elem.onclick=myfunction.call();
const elementname = document.getElementById('elementId');
elementname.setAttribute("onclick","functionName()");
传递参数...
var a = 10;
var b = 20;
const elementname = document.getElementById('elementId');
elementname.setAttribute("onclick",`functionName(${a},${b})`);
并创建新元素...
const elementname = document.createElement('span');
elementname.innerText = "Hii..!";
elementname.setAttribute("onclick","functionName()");
// 你可以像上面的例子一样在其中添加参数。
var clickHandler = function(){
};
elem.onclick = clickHandler;
function clickHandler(){
};
elem.onclick = clickHandler;
函数
在javascript
中属于变量类型。clickHandler
,类型为function
,值为函数体的变量。elem.onclick = function(){};
你正在创建一个没有名称的匿名函数,并将其分配给元素的 onclick
属性。
同时,这种将处理程序绑定到事件的方法已经有点过时。大多数浏览器都有更好的方法来解决许多常见问题,比如添加多个处理程序到同一个事件。一旦你理解了这个函数的概念,就可以继续查看 W3C 模型事件注册,而不是这个传统模型。使用传统方法得到了很好的支持,没问题,只是您还有更好的设计选项。
<div id="test">Click me to alert</div>
--
document.getElementById("test").onclick=callme;
function callme()
{
alert("You have clicked me!");
}
演示 这里
HTML:
<button>Button</button>
<div id="buttons">
</div>
JS(我使用了jQuery):
$('button').click(function(){
var dyn_button = '<button onclick="javascript:test()">Dynamic button</button>'
$('div#buttons').append(dyn_button + "<br>");
});
function test()
{
alert(123);
}
elem.onclick=...
赋值。对于我来说,直接设置并不起作用。 - dtasev