2016-08-28 10 views
0

私はjoomlaウェブサイトのコンテンツを日付に基づいて表示するためにjqueryを使用しようとしています。ここで働いているjsfiddleは次のとおりです。http://jsfiddle.net/2BHLd/968/joomlaテンプレートにスクリプトがロードされていません

$(function() { 
$(".DateDiv").each(function(index) { 
    var sRange = $(this).find(".DateRange").html(); 
    var arrTemp = sRange.split(" to "); 
    var dtFrom = new Date(arrTemp[0]); 
    var dtTo = new Date(arrTemp[1]); 
    var dtNow = new Date(); 
    if (dtNow >= dtFrom && dtNow <= dtTo) 
     $(this).show(); 
    }); 
}); 

私は私のページにスクリプトやCSSを挿入するためにJumiを使用して記事にHTMLを入れています。 CSSはhtmlを隠しているのでうまく動作しているようですが、何らかの理由で、現在の日付が日付範囲内であってもスクリプトがテキストを表示しているようには見えません。

http://askc.org/galacticos/index.php/events/upcoming-events

このJoomlaのテンプレートは、私が何ができるかを制限するようだが、私はどこかの単純なミスを犯していると私は無駄にそれを修正しようとしている2時間を費やしてきたと思っています。前もって感謝します!

+0

どのようにあなたのumiコードを使用していますか? Jumiでは、メニュー項目として、モジュール項目として、または記事のショートコードとしてリンクされた3つの場所にコードを追加できます。あなたはどちらを使っていますか? –

+0

@PatrickEvans設定された位置の.jsファイルを指しているjumiモジュールがあります。次に、記事の位置を読み込みます。私は実際にサイト上でいくつかの他のスクリプトを使ってこの同じアプローチを問題なく使用しました。最初にテキストを隠すCSSもファイル内にあるので、少なくともそれを見ていることはわかっています。助けてくれてありがとう! – chbrandt

答えて

0

joomlaは従来の理由からmootools用に予約していますが、を使用しています。あなたが本当に$接頭辞を持つように、あなたは

でそれを再割り当てすることができれば、別の方法として

jQuery(function() { 
jQuery(".DateDiv").each(function(index) { 
    var sRange = jQuery(this).find(".DateRange").html(); 
    var arrTemp = sRange.split(" to "); 
    var dtFrom = new Date(arrTemp[0]); 
    var dtTo = new Date(arrTemp[1]); 
    var dtNow = new Date(); 
    if (dtNow >= dtFrom && dtNow <= dtTo) 
     jQuery(this).show(); 
    }); 
}); 

単にので、上記のコードは次のようになりますjQuery$すべての発生を置き換えます

$ = jQuery; 

スクリプトの直前。これはmootoolsである$に依存する他の機能を破る可能性があり、それを行うJoomlaの好きな方法ではありません。

最後に、あなたのコードは非常に耐性がない、sRangeは、少なくとも2つの項目が含まれていない場合

var dtTo = new Date(arrTemp[1]); 

が解除されます、そしてarrTempアイテムが日付に変換できない場合は、次の比較は、予期しない結果を生成します。

+0

ありがとう、これは完璧に働いて、Joomlaが$をどのように扱ったかを知らなかった。私は最初のオプションが一番好きです。コード上の注釈も気に入ってください。 – chbrandt

+0

あなたは受け入れられたとして質問をマークできますか? –

関連する問題