这是我现在所拥有的,它不起作用:

<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);");


话虽如此,请不要这样做。

07-24 09:50
查看更多