这是我现在所拥有的,它不起作用:
<script>
jQuery(function($){
$(document).ready(function(){
$("a").attr('onclick', 'return goog_report_conversion(' + this.attr('href') + ')');
});
});
</script>
我是否错误地使用了'this'关键字?
最佳答案
如果您不打算在元素中分配onclick
内联,我看不出您为什么不使用标准事件处理程序的任何理由。您可以阅读有关福利的更多信息here。
我建议这样做:
$("a").click(function() {
var href = $(this).attr("href");
return goog_report_conversion(href);
});
另外,您的前两行代码正在执行相同的任务,因此您不需要两者。 (More info here)
jQuery(function($){ ... });
// OR
$(document).ready(function() { ... });
如果您想知道为什么您的列表不起作用:
attr()
没有自己的this
参数。(向上跟踪它,您使用它的上下文实际上是指
document
,因为范围是由$(document).ready( ... )
定义的)如果这样做,可能需要修改
goog_report_conversion()
函数以接受clicked元素的参数,而不是href
。您的this
将包含在字符串中,而不是串联的。使用传递的元素,您将获取href
,与我们在上面的示例中所做的类似。function goog_report_conversion(clicked_element) {
var href = $(clicked_element).attr("href");
//do something with href
});
$("a").attr("onclick", "return goog_report_conversion(this);");
话虽如此,请不要这样做。