javascript - 如何获取被click的DOM?
巴扎黑
巴扎黑 2017-04-11 11:47:26
[JavaScript讨论组]

写了一段html给video的控件,想每次点击时变更button的内容,但是不知道如何获取被点击的这个button。用了event.target结果多数浏览器还好,但火狐就报错。查了下,说event或window.event并不是标准用法。

html:

        
        

js:

function playbyid(vid) {
    thisbutton = event.target;
    thisbutton.innerHTML = '暂停';
    //var vid = thisbutton.id + 'v';
    console.log(vid);
    //var video = document.getElementById(vid);
    var video = vid;
    if (video.paused) {
        video.play();
        video.addEventListener('ended', function() {
            thisbutton.innerHTML = '播放';
            video.removeEventListener;
        }, false);
    } else {
        video.pause();
        thisbutton.innerHTML = '播放';
    }
}

所以我该如何获取被click的这个button?

PS:不要告诉我用onclick调用的函数传参数啊,因为页面上的视频可能很多,我正在考虑如何把id全部都去掉呢,不要再给button加id了。

巴扎黑
巴扎黑

全部回复(4)
大家讲道理

兼容一下

var ele= event.target || event.srcElement;
怪我咯
function(e) {
  e.target === "className"
}
伊谢尔伦
 <button type="button" onclick="playbyid(this, v1)">播放</button>

 playbyid = function(ele, vid){
     var button = ele; 
 }
迷茫

html:

<video id="v1" src="2016-07-21_01-01-21_45791600.mp4">你的浏览器不支持HTML5</video>
<button type="button" data-video-id="v1" onclick="playbyid(this)">播放</button>

js:

function playbyid(thisbutton) {
    thisbutton.innerHTML = '暂停';
    var vid = thisbutton.getAttribute('data-video-id');
    console.log(vid);
    
    var video = document.getElementById(vid);
    //var video = vid;
    if (video.paused) {
        video.play();
        video.addEventListener('ended', function() {
            thisbutton.innerHTML = '播放';
            video.removeEventListener;
        }, false);
    } else {
        video.pause();
        thisbutton.innerHTML = '播放';
    }
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号