1

現在、イベントがカレンダーに動的に取り込まれています。次に、イベントにマウスオーバーすると、qTip (jquery プラグイン) がポップアップし、ポップアップ ダイアログが表示されます。

現在、カレンダーの項目を「完了する」ための「リンク」があり、この JavaScript を使用してリンクから情報を取得しています。

// Update event to be complete
        $('.updateEvent').live('click', function() {
            var goTo     = $(this).attr('href');
            var eventId1 = $(this).attr('rel');
            var eventId2 = eventId1.split("-");
            var eventId  = eventId2[1];

            $.ajax({
                  url: goTo,
                  dataType: 'html',
                  success: function (event, response) {
                        $("#"+eventId).fullCalendar('className', '.complete');
                        //$("#calendar").fullCalendar("refetchEvents");
                  },
                  error: function(response, data) {
                    alert("Oops... Looks like we're having some difficulties.");  
                  }
            });
            return false;
        });

イベント「className」->「.complete」を実行して更新する方法はありますか実際の「イベント」を取得する必要があることは知っていますが、jQueryでそれを行う方法がわかりませんqTip機能。

これが理にかなっていることを願っています。何か方向性があれば、それは大歓迎です。

更新されたコード:

// Update event to be complete
        $('.updateEvent').live('click', function() {
            var goTo     = $(this).attr('href');
            var eventId1 = $(this).attr('rel');
            var eventId2 = eventId1.split("-");
            var eventId  = eventId2[1];

            $.ajax({
                  url: goTo,
                  dataType: 'html',
                  success: function (event, response) {

                      var eventNew = $("#calendar").fullCalendar("clientEvents", eventId);
                      console.log(eventNew);

                  },
                  error: function(response, data) {
                    alert("Oops... Looks like we're having some difficulties.");  
                  }
            });
            return false;
        });

console.log(eventNew); に書き込むと、NULL として返されます。そして、eventId が (17836) などの実際の eventId で応答していることを知っています。

他の考えは大歓迎です!

このページの完全な JS スクリプト: http://jsfiddle.net/ah73B/

4

1 に答える 1

1

クラス名を変更する前に、まずイベントへのハンドルをフェッチする必要があると思います。メソッドを参照してください.fullCalendar( 'clientEvents' [, idOrFilter ] )。eventId がわかっている場合は、それをフィルターとしてこのメ​​ソッドに渡すことができます。次に、className を変更します。

お役に立てれば。質問をより明確にするために、の HTML を投稿できます。

于 2012-05-15T14:17:14.407 に答える