要素内にonclick
のインラインを割り当てない場合は、標準のイベントハンドラを使用するだけの理由はありません。あなたはhereの利点についてもっと読むことができます。
私はこれをお勧めしたい:あなたは両方を必要としませんので、
$("a").click(function() {
var href = $(this).attr("href");
return goog_report_conversion(href);
});
また、コードのあなたの最初の2行は、同じタスクを実行しています。 (More info here)
jQuery(function($){ ... });
// OR
$(document).ready(function() { ... });
あなたは動作しませんなぜあなたは迷っている場合:
attr()
は独自のthis
引数を持っていません。
(上向きにそれをトレース、あなたはスコープが$(document).ready(...)
によって定義されている、それは実際に、document
を参照することになり使用しているれているコンテキスト)あなたは、そのように行うためのた場合
、 href
ではなく、goog_report_conversion()
関数を変更して、クリックした要素のパラメータを受け入れる必要があります。 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);");
つまり、とは言わないでください。
しないでください。実際のイベントハンドラを使用する必要があります。 – SLaks
いいえ、コード行はまだ解釈されていません。したがって、 'this'は' a'がクリックされたことを意味しません。 (もしそれがあなたが参照したかったものであれば) – JustinJmnz