これが私の状況です。ウェブサイト全体にいくつかのリンクがあります。それらのいくつかは次のようになります。
<a target="_blank" onclick="someFunction()" href="/somFile.pdf">some file</a>
いくつかは次のようになります。
<a target="_blank" href="/somFile.pdf">some file</a>
クリックすると、すべてのリンクが someFunction() を呼び出す必要があります。onclick 属性に呼び出しがあるものは、従来のコンテンツ ページです。新しいページには、次のように jQuery クリック イベントが関連付けられています。
$(document).ready(function(){
$('a[href$=".pdf"]').click(function() {
someFunction();
});
});
これが問題です。someFunction() を更新することはできますが、実際のリンクやその jQuery に触れることはできません。必要なのは、クリックされたリンクの href 値を知ることです。someFunction() 内で次を使用してみました:
var ev = window.event;
origEl = ev.target || ev.srcElement;
console.log(origEl.href);
しかし、これは機能しません。私も試しconsole.log(window.event)
てみましたが、何も得られませんでした。未定義だと言います。ここで何が欠けているのか、または関数が呼び出されたときに参照を渡さないと基本的に不可能ですか?
編集:明確にするために、私は短期的または中期的な解決策としてsomeFunction()
、onclickまたはjQueryコードブラックでの呼び出しを編集できないため、たとえばそれらを変更することはできませんsomeFunction(this)
。ただし、そうしない限り、 someFunction() 内から href を取得できるかどうかはわかりません:(