Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击事件侦听器的preventDefault和pass参数_Javascript_Html - Fatal编程技术网

Javascript 单击事件侦听器的preventDefault和pass参数

Javascript 单击事件侦听器的preventDefault和pass参数,javascript,html,Javascript,Html,我想停止按钮的提交事件,但也要将一个参数传递到一个通过单击触发的函数中。以下是我认为可行的方法: function NL(line, event){ event.preventDefault(); document.getElementsByClassName('new-line')[1].innerHTML=line; } document.getElementsByClassName('new-line')[0].addEventListener('click', function(

我想停止按钮的提交事件,但也要将一个参数传递到一个通过单击触发的函数中。以下是我认为可行的方法:

function NL(line, event){
  event.preventDefault();
  document.getElementsByClassName('new-line')[1].innerHTML=line;
}
document.getElementsByClassName('new-line')[0].addEventListener('click', function(){NL('add new line');});
function NL(line, event){
    event.preventDefault();
    document.getElementsByClassName('new-line')[1].innerHTML=line;
}
document.getElementsByClassName('new-line')[0].addEventListener('click', function(event){
    NL('add new line', event);
});
以下是HTML:

<form class='myform'>
  <div class='form-block'>
    <span class='line'>1</span>
    <button class='new-line'>New Line</button>
    <button class='new-line'>New 2nd Line</button>
  </div>
</form>

1.
新线
新二线
我不能更改HTML,我只能编辑JS。提前感谢

函数NL(行、事件){
event.preventDefault();
document.getElementsByClassName('new-line')[1].innerHTML=line;
}
document.getElementsByClassName('new-line')[0]。addEventListener('click',函数(事件){
NL(“添加新行”,事件);
});

1.
新线
新二线

您的函数接受两个参数
函数NL(行,事件){…}
但您只使用一个参数
NL('add new line')调用它

您没有将事件发送到NL函数

这应该起作用:

function NL(line, event){
  event.preventDefault();
  document.getElementsByClassName('new-line')[1].innerHTML=line;
}
document.getElementsByClassName('new-line')[0].addEventListener('click', function(){NL('add new line');});
function NL(line, event){
    event.preventDefault();
    document.getElementsByClassName('new-line')[1].innerHTML=line;
}
document.getElementsByClassName('new-line')[0].addEventListener('click', function(event){
    NL('add new line', event);
});

使用
addEventlistener()

函数NL(行、事件){
event.preventDefault();
document.getElementsByClassName('new-line')[1].innerHTML=line;
}
document.getElementsByClassName('new-line')[0].addEventListener('click',function(){NL('add new-line',event);})
以下是HTML:
1.
新线
新二线

你是最棒的!非常感谢。