Javascript 函数调用时的默认值

Javascript 函数调用时的默认值,javascript,axios,Javascript,Axios,这是一个由两部分组成的问题。第一部分是如何以调用函数的方式使用.preventDefault() HTML: <input type="hidden" name="_csrf" value="<%= csrfToken %>"> <a href="#" onclick="deleteItem(this)" class="button gray delete" data-id="<%= products._id %>"><i class="sl

这是一个由两部分组成的问题。第一部分是如何以调用函数的方式使用.preventDefault()

HTML:

<input type="hidden" name="_csrf" value="<%= csrfToken %>">
<a href="#" onclick="deleteItem(this)" class="button gray delete" data-id="<%= products._id %>"><i class="sl sl-icon-close"></i> Delete</a>
因为我这里没有这样的活动:

document.body.addEventListener("click", e => {
如何使用e.preventDefault()

第二部分问题:


哪种方法更好?就像我在实际操作按钮中使用的
onclick()
或者在scripts.js文件或页脚中添加事件侦听器一样?ie:
document.body.addEventListener(“单击”,e=>{
第一部分答案)。您可以在方法调用中传递事件,如

<input type="hidden" name="_csrf" value="<%= csrfToken %>">
<a href="#" onclick="deleteItem(event, this)" class="button gray delete" data-id="<%= products._id %>"><i class="sl sl-icon-close"></i> Delete</a>
<button type='button' class='close' aria-label='Close' onClick='myfunction(event)'>

第二部分答案:使用
addEventListner
始终是一种良好的做法。这使您的代码更易于管理/维护。

第一部分答案。您可以像这样在方法调用中传递事件

<input type="hidden" name="_csrf" value="<%= csrfToken %>">
<a href="#" onclick="deleteItem(event, this)" class="button gray delete" data-id="<%= products._id %>"><i class="sl sl-icon-close"></i> Delete</a>
<button type='button' class='close' aria-label='Close' onClick='myfunction(event)'>

第二部分答案:使用
addEventListner
始终是一种良好的做法。这使您的代码更易于管理/维护。

您可以在内联函数调用中传递默认事件,如

<input type="hidden" name="_csrf" value="<%= csrfToken %>">
<a href="#" onclick="deleteItem(event, this)" class="button gray delete" data-id="<%= products._id %>"><i class="sl sl-icon-close"></i> Delete</a>
<button type='button' class='close' aria-label='Close' onClick='myfunction(event)'>

事件和相应的目标可以传播!

您可以在内联函数调用中传递默认事件,如

<input type="hidden" name="_csrf" value="<%= csrfToken %>">
<a href="#" onclick="deleteItem(event, this)" class="button gray delete" data-id="<%= products._id %>"><i class="sl sl-icon-close"></i> Delete</a>
<button type='button' class='close' aria-label='Close' onClick='myfunction(event)'>

事件和相应的目标可以传播!

您只需传递参数名称event。这将传递事件,您可以处理它。 我给你举了个小例子,希望对你有所帮助

<html>
<head>
    <script>
        function test(e, btn) {
            console.log(e);//This is the event
            console.log(btn);//This is the button element
        }
    </script>
</head>
<body>
<button onclick="test(event, this)">Test Button</button>
</body>
</html>

功能测试(e、btn){
console.log(e);//这是事件
console.log(btn);//这是按钮元素
}
测试按钮

对于第二个问题。两种方法都很好。您应该使用更易于维护的方法。

您只需传递参数名称event。这将传递事件,并且您可以处理它。 我给你举了个小例子,希望对你有所帮助

<html>
<head>
    <script>
        function test(e, btn) {
            console.log(e);//This is the event
            console.log(btn);//This is the button element
        }
    </script>
</head>
<body>
<button onclick="test(event, this)">Test Button</button>
</body>
</html>

功能测试(e、btn){
console.log(e);//这是事件
console.log(btn);//这是按钮元素
}
测试按钮

对于第二个问题。两种方法都很好。您应该使用更易于维护的方法。

内联事件侦听器(就像内联样式一样)通常是一个非常糟糕的主意。为什么不使用
addEventListener
注册您的事件?这样就解决了您的问题?您似乎回答了自己的问题(s) 我的csrf代币有问题,我试图更换,这解决了我的问题。我更喜欢使用
addEventListner
实际上不使用锚,而是使用
button type=“button”
取而代之。为作业选择不合适的元素首先会导致您的问题。哈哈,对不起,利亚姆,axios正在向节点后端发送数据。将从主题列表中删除它。内联事件侦听器是(就像内联样式一样)一般来说,这是一个非常糟糕的主意。为什么不使用
addEventListener
注册您的事件?因为这样可以解决您的问题?您似乎回答了您自己的问题我的csrf代币有问题,我试图更换,这解决了我的问题。我更喜欢使用
addEventListner
实际上不使用锚,而是使用
button type=“button”
取而代之。为作业选择不合适的元素首先会导致您的问题。哈哈,对不起,利亚姆,axios正在向节点后端发送数据。将从主题列表中删除它