在没有 jQuery 的情况下触发自定义事件
trigger custom event without jQuery
我用 jQuery triggerHandler()
触发了一些 DOM 事件
<!DOCTYPE html>
<html>
<head>
<title>Whosebug</title>
<script src="http://ajax.googleapis.com:80/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
</head>
<body>
<script>
$(document).ready(function() {
$(document).on('hey', function(customEvent, originalEvent, data) {
console.log(customEvent.type + ' ' + data.user); // hey Whosebug
});
// how to this in vanilla js
$(document).triggerHandler('hey', [{}, {
'user': 'Whosebug'
}])
});
</script>
</body>
</html>
没有 jQuery 怎么触发这个?
重要:我需要知道事件类型和自定义数据
您可以使用 Custom Events 并将它们分派到您想要的元素上。
如果您想要 精确 复制 jQuery 的行为,您最好深入研究 jQuery source code
.
如果您只想进行正常的事件派发和监听,请参阅CustomEvent
for how to dispatch an event with custom data and addEventListener
了解如何监听。
您的示例可能类似于
document.addEventListener('hey', function(customEvent)
{
console.log(customEvent.type + ' ' + customEvent.detail.user); // hey Whosebug
});
document.dispatchEvent(new CustomEvent('hey', {'detail': {'user': 'Whosebug'}}));
我用 jQuery triggerHandler()
<!DOCTYPE html>
<html>
<head>
<title>Whosebug</title>
<script src="http://ajax.googleapis.com:80/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
</head>
<body>
<script>
$(document).ready(function() {
$(document).on('hey', function(customEvent, originalEvent, data) {
console.log(customEvent.type + ' ' + data.user); // hey Whosebug
});
// how to this in vanilla js
$(document).triggerHandler('hey', [{}, {
'user': 'Whosebug'
}])
});
</script>
</body>
</html>
没有 jQuery 怎么触发这个?
重要:我需要知道事件类型和自定义数据
您可以使用 Custom Events 并将它们分派到您想要的元素上。
如果您想要 精确 复制 jQuery 的行为,您最好深入研究 jQuery source code
.
如果您只想进行正常的事件派发和监听,请参阅CustomEvent
for how to dispatch an event with custom data and addEventListener
了解如何监听。
您的示例可能类似于
document.addEventListener('hey', function(customEvent)
{
console.log(customEvent.type + ' ' + customEvent.detail.user); // hey Whosebug
});
document.dispatchEvent(new CustomEvent('hey', {'detail': {'user': 'Whosebug'}}));