Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.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 如何侦听onclick事件,然后添加另一个onclick事件_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何侦听onclick事件,然后添加另一个onclick事件

Javascript 如何侦听onclick事件,然后添加另一个onclick事件,javascript,jquery,html,Javascript,Jquery,Html,我有一个动态创建的旋转木马横幅,我无法控制HTML。它为转盘中的每个图像生成以下代码,唯一改变的是img id;它上升了1 <a href="/somelike.aspx" onclick="window.open(this.href, (this.target? this.target : '_self'));return false;"><img id="theimg1_0" src="someimage.jpg" alt="Slide Show Image" title=

我有一个动态创建的旋转木马横幅,我无法控制HTML。它为转盘中的每个图像生成以下代码,唯一改变的是img id;它上升了1

<a href="/somelike.aspx" onclick="window.open(this.href, (this.target? this.target : '_self'));return false;"><img id="theimg1_0" src="someimage.jpg" alt="Slide Show Image" title="" border="0"></a>
我宣布这一事件:

_gaq.push(['_trackEvent', 'slider2', 'click', $(this).attr('href'),0,true]);

只需将函数引用为事件处理程序,如下所示:

$('#carousel').on('click', 'a', function(){
    _gaq.push(['_trackEvent', 'slider2', 'click', this.href,0,true]);
});
html:


只需将函数引用为事件处理程序,如下所示:

$('#carousel').on('click', 'a', function(){
    _gaq.push(['_trackEvent', 'slider2', 'click', this.href,0,true]);
});
html:


只需将函数引用为事件处理程序,如下所示:

$('#carousel').on('click', 'a', function(){
    _gaq.push(['_trackEvent', 'slider2', 'click', this.href,0,true]);
});
html:


只需将函数引用为事件处理程序,如下所示:

$('#carousel').on('click', 'a', function(){
    _gaq.push(['_trackEvent', 'slider2', 'click', this.href,0,true]);
});
html:


我将使用事件委托,而不必担心更改现有的onclick事件。如果您使用的是jQuery,则可以执行以下操作:

$('#carousel').on('click', 'a', function(){
    _gaq.push(['_trackEvent', 'slider2', 'click', this.href,0,true]);
});
编辑:

现在,我看到原始代码的onclick处理程序返回false,从而破坏了事件委托。请尝试以下方法:

$('#carousel').on('mousedown', 'a', function(){
    this.onclick = function(e){
        window.open(this.href, (this.target? this.target : '_self'));
        _gaq.push(['_trackEvent', 'slider2', 'click', this.href,0,true]);
        e.preventDefault();
    }
});

mousedown应该在onclick事件触发之前触发,这样您就有机会替换onclick事件处理程序。

我将使用事件委派,而不必担心更改现有的onclick事件。如果您使用的是jQuery,则可以执行以下操作:

$('#carousel').on('click', 'a', function(){
    _gaq.push(['_trackEvent', 'slider2', 'click', this.href,0,true]);
});
编辑:

现在,我看到原始代码的onclick处理程序返回false,从而破坏了事件委托。请尝试以下方法:

$('#carousel').on('mousedown', 'a', function(){
    this.onclick = function(e){
        window.open(this.href, (this.target? this.target : '_self'));
        _gaq.push(['_trackEvent', 'slider2', 'click', this.href,0,true]);
        e.preventDefault();
    }
});

mousedown应该在onclick事件触发之前触发,这样您就有机会替换onclick事件处理程序。

我将使用事件委派,而不必担心更改现有的onclick事件。如果您使用的是jQuery,则可以执行以下操作:

$('#carousel').on('click', 'a', function(){
    _gaq.push(['_trackEvent', 'slider2', 'click', this.href,0,true]);
});
编辑:

现在,我看到原始代码的onclick处理程序返回false,从而破坏了事件委托。请尝试以下方法:

$('#carousel').on('mousedown', 'a', function(){
    this.onclick = function(e){
        window.open(this.href, (this.target? this.target : '_self'));
        _gaq.push(['_trackEvent', 'slider2', 'click', this.href,0,true]);
        e.preventDefault();
    }
});

mousedown应该在onclick事件触发之前触发,这样您就有机会替换onclick事件处理程序。

我将使用事件委派,而不必担心更改现有的onclick事件。如果您使用的是jQuery,则可以执行以下操作:

$('#carousel').on('click', 'a', function(){
    _gaq.push(['_trackEvent', 'slider2', 'click', this.href,0,true]);
});
编辑:

现在,我看到原始代码的onclick处理程序返回false,从而破坏了事件委托。请尝试以下方法:

$('#carousel').on('mousedown', 'a', function(){
    this.onclick = function(e){
        window.open(this.href, (this.target? this.target : '_self'));
        _gaq.push(['_trackEvent', 'slider2', 'click', this.href,0,true]);
        e.preventDefault();
    }
});

mousedown应该在onclick事件触发之前触发,这样您就有机会替换onclick事件处理程序。

我根本无法控制html,因此无法将此onclick=“onClickHandler();”事件添加到链接中。我根本无法控制html,因此无法添加此onclick=“onClickHandler();”对于链接我根本无法控制html,因此我无法将此onclick=“onClickHandler();”事件添加到链接我根本无法控制html,因此我无法将此onclick=“onClickHandler();”事件添加到链接我已尝试过此操作,但无效。我认为这是因为旋转木马每隔几秒钟就会动态变化,所以html也会变化。我把click事件放在onload事件中,我应该用另一种方式吗?(如果需要示例,请告诉我)事件委派是一种避免更改HTML成为问题的方法。我之前没有注意到onclick事件返回false,所以这就是委托不起作用的原因。事件被阻止在DOM树上冒泡,我认为这是旋转木马作者的一个短视举动。我已经尝试过了,但没有成功。我认为这是因为旋转木马每隔几秒钟就会动态变化,所以html也会变化。我把click事件放在onload事件中,我应该用另一种方式吗?(如果需要示例,请告诉我)事件委派是一种避免更改HTML成为问题的方法。我之前没有注意到onclick事件返回false,所以这就是委托不起作用的原因。事件被阻止在DOM树上冒泡,我认为这是旋转木马作者的一个短视举动。我已经尝试过了,但没有成功。我认为这是因为旋转木马每隔几秒钟就会动态变化,所以html也会变化。我把click事件放在onload事件中,我应该用另一种方式吗?(如果需要示例,请告诉我)事件委派是一种避免更改HTML成为问题的方法。我之前没有注意到onclick事件返回false,所以这就是委托不起作用的原因。事件被阻止在DOM树上冒泡,我认为这是旋转木马作者的一个短视举动。我已经尝试过了,但没有成功。我认为这是因为旋转木马每隔几秒钟就会动态变化,所以html也会变化。我把click事件放在onload事件中,我应该用另一种方式吗?(如果需要示例,请告诉我)事件委派是一种避免更改HTML成为问题的方法。我之前没有注意到onclick事件返回false,所以这就是委托不起作用的原因。事件被阻止在DOM树上冒泡,我认为这是旋转木马作者的短视举动。