使用 jQuery 覆盖点击值
Overwriting onclick value using jQuery
我正在尝试创建一个函数,该函数将同时选择所有带有http和_gaq的锚标记(因为许多链接都有事件跟踪),然后将Google Analytics跨域跟踪链接器方法添加到onclick事件中:
$("a[href*='http:'][onclick*='_gaq']").each(function(){
var href = this.href;
var onclick = $(this).attr('onclick');
var linker = "['_link', "+ "'"+href+"'"+"],";
var output = [onclick.substr(0,10), linker, onclick.substr(10), " return false;"].join('');
console.log('output : '+output);
});
当我运行这个时,它会输出:
output : _gaq.push(['_link', 'http://google.com'],['_trackEvent','dude','dude','dude']); return false;
这就是我希望 onclick 的新值,所以我想知道如何让输出值"覆盖"旧的 onclick 值?
我还创建了一个jsfiddle来说明。
感谢任何帮助或建议。
尝试
$("a[href*='http:'][onclick*='_gaq']").each(function(e){
var href = this.href;
var onclick = $(this).attr('onclick');
var linker = "['_link', "+ "'"+href+"'"+"],";
var output = [onclick.substr(0,10), linker, onclick.substr(10), " return false;"].join('');
$(this).attr('onclick', output);
});
我发现了这个问题,它可能会得到你想要的答案:
$("a[href*='http:'][onclick*='_gaq']").each(function(){
var href = this.href;
var onclick = $(this).attr('onclick');
var linker = "['_link', "+ "'"+href+"'"+"],";
var output = [onclick.substr(0,10), linker, onclick.substr(10), " return false;"].join('');
$(this).attr('onclick','').unbind('click'); // Get rid of the old one
var f = new Function(output); // create a function
$(this).click(f); // Add your new onclick
});
编辑:我被最近的评论引入歧途,有26个赞成票。切换回我的原始形式。
26 票 然而它似乎不起作用!, 比较
http://jsfiddle.net/TN2wr/
跟
http://jsfiddle.net/TN2wr/1/
相关文章:
- 覆盖Jquery's函数
- 如何覆盖jQuery所选元素的“click”事件
- 如何覆盖jQuery-ui-sortable的拖动事件
- 覆盖 jquery .load() 函数 - 处理回调
- 覆盖 jQuery 的 .load 函数
- jquery.mobile 覆盖 Jquery UI 主题:
- 如何在屏幕大小更改时覆盖 jquery 滑块切换
- 如何用html5数据属性覆盖jquery插件选项
- 如何覆盖jQuery promise回调
- 如何正确覆盖jquery ui自动完成
- 内联onclick正在覆盖JQuery click()
- 当尝试使用touchOverflowEnabled覆盖jQuery Mobile默认设置时,页面加载了两次
- 移动设备上没有滚动体的全屏覆盖(jquery mobile)
- 在哪里定义悬停类/行为来覆盖jquery的主题CSS
- 如何覆盖Jquery自动完成的用户输入
- 覆盖jQuery ajax +点击进入完成功能
- 覆盖jQuery插件的设置
- 类并覆盖JQuery事件处理程序
- 如何覆盖jquery _blank
- 覆盖jQuery方法$.POST