Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击“事件不工作”_Javascript_Jquery_Mediaelement.js_Mediaelement - Fatal编程技术网

Javascript 单击“事件不工作”

Javascript 单击“事件不工作”,javascript,jquery,mediaelement.js,mediaelement,Javascript,Jquery,Mediaelement.js,Mediaelement,我正在使用mediaelement.js播放音频文件。我想做的是跟踪第一次按钮点击并将其发送到Google analytics,然后替换元素类,这样第二次点击就不会发送到GA。下面是代码: $(function () { $(".aud-not-played .mejs-play").click(function () { $('.aud-not-played').attr('class', 'aud-played'); setTimeout("_gaq.

我正在使用mediaelement.js播放音频文件。我想做的是跟踪第一次按钮点击并将其发送到Google analytics,然后替换元素类,这样第二次点击就不会发送到GA。下面是代码:

$(function () {
    $(".aud-not-played .mejs-play").click(function () {
        $('.aud-not-played').attr('class', 'aud-played');
        setTimeout("_gaq.push(['_trackEvent', 'Audio', 'Play', 'audtitle'])", 10000);
    })
});
和HTML代码:

<div class="aud-not-played">
  <div id="mep_0" class="mejs-container svg  mejs-audio " style="width: 600px; height: 30px;">
    <div class="mejs-inner">
      <div class="mejs-mediaelement">
        <audio src="http://users.skynet.be/fa046054/home/P22/track06.mp3" style="display: none;">

        </audio>
      </div>
      <div class="mejs-layers">
        <div class="mejs-poster mejs-layer" style="display: none; width: 600px; height: 30px;">
        </div>
      </div>
      <div class="mejs-controls">
        <div class="mejs-button mejs-playpause-button mejs-play">
          <button type="button" aria-controls="mep_0" title="Play/Pause">
          </button>
        </div>
      </div>
      <div class="mejs-clear">
      </div>
    </div>
  </div>
</div>
使用jquery的函数

$(function () {
    $(".aud-not-played .mejs-play").live('click',function () {
        $('.aud-not-played').attr('class', 'aud-played');
        setTimeout("_gaq.push(['_trackEvent', 'Audio', 'Play', 'audtitle'])", 10000);
     })
});

也许您需要以编程方式添加一个事件侦听器,如下所示

$('.mejs-playpause-button button[title="Play/Pause"]').on('click', function(e) {
//Do Whatever you want here        
console.log('addEventListener - playing') ;
});

我遇到了一个非常类似的问题,并发现唯一的解决方案是使用插件和以下功能。注意,这必须在完整页面加载时运行,而不是页面就绪

插件:


你也可以发布HTML吗?这样我们就可以知道按钮的语法了。除了尝试一下
$(函数(){$(“.mejsplay”).one(“单击”,函数(){.setTimeout(“\u gaq.push”(['''u trackEvent','Audio','play','audittitle']),10000)})注释掉click事件中的代码,并添加一个
警报(“测试”)。看看你是否收到警报???谢谢,但我无法让它工作。我试过了,一,绑定,点击。这个按钮没用。我尝试将选择器从.mejs play更改为just.aud not played,以查看它是否在其他元素上工作,如果我单击播放器上的其他任何位置,而不是单击play/pause按钮,它是否工作。on()是您应该使用上述方法的唯一方法。最接近的是
live
,它已被弃用(并被
上的
取代)。可能还有另一个元素覆盖了实际的按钮(具有更高的z索引)?
$(function () {
    $(".aud-not-played .mejs-play").live('click',function () {
        $('.aud-not-played').attr('class', 'aud-played');
        setTimeout("_gaq.push(['_trackEvent', 'Audio', 'Play', 'audtitle'])", 10000);
     })
});
$('.mejs-playpause-button button[title="Play/Pause"]').on('click', function(e) {
//Do Whatever you want here        
console.log('addEventListener - playing') ;
});
$(window).load(function() {
    // Monitor play buttons
    $(".mejs-playpause-button").watch({
        properties: "top,left,opacity,attr_class",
        // Callback function when a change is detected
        callback: function(data, i) {
            if($(this).hasClass('mejs-pause')) {
                setTimeout("_gaq.push(['_trackEvent', 'Audio', 'Play', 'audtitle'])", 10000);
            }
        }
    });
});