作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用纯 JavaScript 创建一个视频切换页面。每当我单击禁用控件按钮时。控件应该被禁用。单击启用 Btn 即可启用。我听说过 DRY 原则。所以要完全遵循它。我为事件监听器创建了一个构造函数,在我向其传递“元素”、“事件”、“操作”参数后,该函数应该可以工作。
最初,我的代码中有很多错误。通过,我即兴发挥并使其发挥作用。 addEventListener 附加到按钮,它也给我控制台日志。但该操作并未得到执行。我不知道为什么。请帮忙。提前致谢。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Player</title>
<style></style>
<link
rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/css/bootstrap.min.css"
integrity="sha256-YLGeXaapI0/5IgZopewRJcFXomhRMlYYjugPLSyNjTY="
crossorigin="anonymous"
/>
</head>
<body>
<h2 class="text-warning text-center">
Video Player DOM Manipulation Using using Pure JS
</h2>
<p class="text-center">I have used Dry Principle so that code is compact</p>
<div class="container">
<div class="row">
<div class="col-md-6 mx-auto">
<video
class="mx-auto"
src="video\your_video.mp4"
width="500px"
autoplay="true"
controls
></video>
</div>
</div>
<div class="row mb-5">
<div class="col-md-6 mx-auto">
<p class="text-warning font-weight-bold">Controls :-</p>
<button class="btn btn-sm btn-success enableBtn">Enable</button>
<button class="btn btn-sm btn-success disableBtn">Disable</button>
</div>
</div>
</div>
<script>
// window.addEventListener("DOMContentLoaded", function() {
var fnConstruct = function(element, event, action) {
console.log(element);
console.log(event);
// console.log(action);
document
.querySelector(element)
.addEventListener(event, function() {
console.log('click');
console.log(action);
action;
});
};
var enableControls =
'document.querySelector("video").removeAttribute("controls");document.querySelector("video").setAttribute("controls", "");';
fnConstruct(".enableBtn", "click", enableControls);
var disableControls =
'document.querySelector("video").removeAttribute("controls");';
fnConstruct(".disableBtn", "click", disableControls);
// });
</script>
</body>
</html>
注意:- 请将视频 src 属性替换为系统中您想要的任何视频。
最佳答案
尝试传递函数而不是字符串作为 action
并在 fnConstruct
中调用它:
var fnConstruct = function(element, event, action) {
console.log(element);
console.log(event);
document
.querySelector(element)
.addEventListener(event, function() {
console.log('click');
action();
});
};
fnConstruct(".enableBtn", "click", function() {
document.querySelector("video").removeAttribute("controls");
document.querySelector("video").setAttribute("controls", "");
});
fnConstruct(".disableBtn", "click", function() {
document.querySelector("video").removeAttribute("controls");
});
关于javascript - 我为事件监听器生成了一个构造函数。但它没有按照我想要的方式工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57197399/
使用登录后,我想吐出用户名。 但是,当我尝试单击登录按钮时, 它给了我力量。 我看着logcat,但是什么也没显示。 这种编码是在说。 它将根据我在登录屏幕中输入的名称来烘烤用户名。 不会有任何密码。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或include a min
我是一名优秀的程序员,十分优秀!