gpt4 book ai didi

javascript - 如何监听 onclick 事件然后添加另一个 onclick 事件

转载 作者:行者123 更新时间:2023-11-28 19:55:58 25 4
gpt4 key购买 nike

我有动态创建的轮播横幅,我无法控制 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>

我需要编写一些 jQuery,以便在触发此事件时:

onclick="window.open(this.href, (this.target? this.target : '_self'));

我触发此事件:

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

最佳答案

我会使用事件委托(delegate),而不用担心更改现有的 onclick 事件。如果您使用 jQuery,您可以执行以下操作:

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

编辑:

我现在看到原始代码的 onclick 处理程序返回 false,搞砸了事件委托(delegate)。试试这个:

$('#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 事件处理程序。

关于javascript - 如何监听 onclick 事件然后添加另一个 onclick 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22559136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com