防止默认在功能中不起作用
prevent default is not working in function
我正试图添加preventDefault()
的功能如下:
<a href="#" id="makePaid" onclick="makePaidModalView(1, evnt)">Make Paid</a>
Javascript: function makePaidModalView(id, e) {
e.preventDefault();
alert(id);
}
但是它没有警告任何东西。控制台显示ReferenceError: e is not defined
。如何在此函数中添加preventDefault()
小提琴
- 使用
No wrap
选项从Jsfiddle左面板,通过选择这个选项将使功能makePaidModalView
全局,否则它将被包裹在load
或DOMContentLoded
回调,不能从HTML访问。 - 使用
event
作为事件处理程序中的事件参数的名称。由于evnt
没有定义,undefined
将被传递给函数,当试图访问undefined.
上的方法时会抛出错误。最好不要使用内联事件。使用 - 如果你在页面上加载了jQuery,你可以使用jQuery的
on
方法来绑定事件。 - 使用
data-*
自定义属性将与元素相关的数据存储在元素本身。你可以使用data('dataName')
从JS中访问它。
addEventListener
从Javascript中绑定元素的事件。更新小提琴
function makePaidModalView(id, e) {
e.preventDefault();
//console.log(id)
alert(id);
}
<a href="#" id="makePaid" onclick="makePaidModalView(1, event)">Make Paid</a>
使用jQuery on
和data-*
自定义属性在元素上存储数据。
$(document).ready(function() {
$('#makePaid').on('click', function(e) {
alert($(this).data('id'));
e.preventDefault();
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<a href="#" id="makePaid" data-id="1">Make Paid</a>
旁注:在使用jQuery时,您还可以使用事件处理程序中的return false;
来阻止元素的默认动作,并阻止事件冒泡到DOM
可以使用addEventListener()将函数绑定到特定事件上。就像
document.getElementById('makePaid').addEventListener('click', function(event) {
makePaidModalView(this.dataset.id, event);
});
function makePaidModalView(id, e) {
e.preventDefault();
alert(id);
}
<a href="#" id="makePaid" data-id=1>Make Paid</a>
相关文章:
- 使用复杂数组时Jquery自动完成功能不起作用
- 为什么我的流星每个功能都不起作用
- jQuery点击功能在获取请求后不起作用
- 切换功能不起作用
- 为什么不是'我的修剪功能不起作用
- Angular UI Select2指令搜索功能不起作用
- j查询点击功能在手风琴菜单链接上不起作用
- 为什么这个排序功能在 Safari 中不起作用
- 控制器功能在 Angular.js 中不起作用
- AngularJS 路由功能不起作用
- JavaScript更新功能不起作用
- ScriptX 打印功能在 IE8 中不起作用
- JS表单验证功能不起作用
- 本地存储功能中的图像不起作用
- 复选框树视图功能不起作用
- Web音频-AudioParam调度功能不起作用
- 功能的禁用/启用按钮;不起作用
- JavaScript/jQuery:获取选择功能在Firefox和Chrome中不起作用
- 复选框单击功能不起作用
- Ckeditor插件功能在使用setData(“hai”)之后不起作用;