1

jQuery プラグイン FullCalendar を使用しており、カレンダーで週末を切り替える「週末」ボタンを作成したいと考えています。ボタンを作成しましたが、同じページに複数のカレンダー ビューがあり、そのすべてにボタンが表示され、メイン カレンダーにのみ表示したいと考えています。そこで、.parent() メソッドを使用して、「calendar」クラスのカレンダー ヘッダーのみにボタンが表示されるようにできると考えました。より良い解決策があると思われる場合は、自由に共有してください。私のコードは次のとおりです。

var $('.fc-header').parent() = parent

if parent == ".calendar"
  $('.fc-header-left').append('<span class="weekends fc-button fc-button-today fc-state-default fc-corner-left fc-corner-right fc-state-active"><span class="fc-button-inner"><span id="weekends" class="fc-button-content">weekends</span><span class="fc-button-effect"><span></span></span></span></span>');
  $("#weekends").click(function () {
});

このコードには多くの問題があると思います。それらすべてを説明していただければ幸いです。ありがとうございます。

4

2 に答える 2

1

わかりました、最初に、あなたのvar宣言は有効ではありません。逆になっています。そのような変数名を割り当てることはできません。2つ目、あなたのif発言は間違っています。第 3 に、$("#weekends").click()イベントは動的に作成される要素では機能しません。.on()動的に作成された要素にアタッチするには、3 つのパラメーターすべてを使用する必要があります。4番目、必要な要素にaを追加しているので、正しいクラスで必要な要素を取得し、他のすべてをスキップするclass="calendar"だけですよね? このナンセンスをすべてチェックして、親を取得する必要はありません。

より良い解決策:次のようなすべての要素を選択するのではなく、実際の要素を選択するだけです$('.fc-header')(2行のコード、ifステートメントなし、混乱の少ない):

$(".calendar").children(".fc-header-left").append('<span class="weekends fc-button fc-button-today fc-state-default fc-corner-left fc-corner-right fc-state-active"><span class="fc-button-inner"><span id="weekends" class="fc-button-content">weekends</span><span class="fc-button-effect"><span></span></span></span></span>');

$(".calendar").on("click", ".fc-button-content", function() {
        // Perform click code here...
});

fc-header-leftこのコードは、クラスを持つ要素の直接の子であるクラスを持つ要素の子があることを前提としていcalendarます。もちろん、HTML を投稿せず、jQuery だけを投稿したため、DOM をどのように設定したかはわかりません。

于 2013-09-04T14:56:32.463 に答える