自分がやろうとしていることを達成する方法がわかりませんが、最初は簡単に思えました。'visited'
リンクされたコンテンツをファンシーボックス iframe に呼び出す前に、クリックされたリンクにクラスを追加したいと考えています。
Fancybox は、beforeLoad
電話を切らない限り問題なく動作します。ページが追加されると、Fancybox をバイパスしてウィンドウをリロードするだけです。
私のbeforeLoad
関数 (ここでは と呼びますadd_visited
) が jQuery の使用を許可されているかどうか ( のようにaddClass
)、またはそのままの JavaScript 機能に固執する必要があるかどうか ( element.setAttribute("className", "visited")
) がわかりません。ここに貼り付けたコードは、渡された への参照を含む jQuery 用this
ですtheClicked
。
ご覧のとおり、関数内での参照方法もわかりません$(this)
。this
本質的には、実際の$.fancybox()
通話から引き継ぎたいと思っています。
わかりやすくするために、.clinical_trial_link
はアンカーに適用されるクラスです。実際のコードではa.clinical_trial_link
.
さらに明確にするために、リンクを訪問済みとしてマークするこの方法の相対的なメリットについて議論しているいくつかの会話を読みました。クラスを単純に使用することにはマイナス面がありますが、このサイトのようにリンクが多いサイトでは、既にクリックされたものを確認することが不可欠です。
最後に、問題のページは次の場所にあります: http://pull4parkinsonsfoundation.org/clinical_trials/
もちろん、js はここに貼り付けたものから変化します。キーボードでサバのように叩き続けます。;-)
助けていただければ幸いです。stackoverflowで皆さんが行っている優れた作業に事前に感謝します。実際に質問を投稿しなければならなかったのは、ここ数年で初めてです。
これが私のコードです:
function add_visited(theclicked) {
$(this).addClass('visited');
}
$(document).ready(function() {
$('.clinical_trial_link').fancybox({
'beforeLoad': add_visited($this),
'maxWidth': 1222,
'maxHeight': 1222,
'fitToView': true,
'width': '80%',
'height': '90%',
'topRatio': 0.2,
'autoSize': false,
'closeClick': false,
'openEffect': 'elastic',
'closeEffect': 'elastic'
});
});