Wie rufe ich Ereignisse auf, wenn ich auf die Schaltflächen „Zurück“ und „Weiter“ klicke?

Lesezeit: 4 Minuten

Benutzer-Avatar
Neo

Im jQuery voller Kalender wir haben vorherige und nächste Schaltflächen. Wie können wir einige Ereignisse beim Klicken auf diese Schaltflächen aufrufen?

Benutzer-Avatar
Burak Ogutken

Der beste Weg ist:

viewRender: function(view, element) {
  var b = $('#calendar').fullCalendar('getDate');
  alert(b.format('L'));
},

  • Das ist besser, als mit jQuery Elemente aus dem DOM zu bekommen.

    – Skkyp

    29. August 2016 um 19:45 Uhr

  • Dies sollte die Antwort sein

    – WtFudge

    25. Juli 2018 um 12:16 Uhr

  • Dies ist eigentlich nicht ganz richtig, da dies ausgelöst wird, wenn auf die Schaltflächen „Weiter“ oder „Zurück“ geklickt wird und wenn sich die Ansicht ändert, sagen wir von Monat zu Woche. Es ist nicht speziell für nächstes / vorheriges, wie die Frage verlangt.

    – Seelenaufsteiger

    27. Juli 2018 um 19:04 Uhr

  • Dies funktionierte für mich, als ich zum letzten Element in einer Listenansicht ging, während die jQuery-Lösung dies nicht tat, da die nächste Schaltfläche (zusammen mit dem Ereignishandler) deaktiviert wurde, bevor das Ereignis ausgelöst werden konnte. Da dies auch in FullCalendar integriert ist, sollte dies definitiv die akzeptierte Antwort sein.

    – EIN

    27. Juni 2019 um 15:09 Uhr

  • Das funktioniert für mich! Vielen Dank

    – Muhammad Ikram UL Mustafa

    13. August 2020 um 5:21 Uhr

Benutzer-Avatar
Nicola Peluchetti

Sie könnten einfach ein Ereignis an die Schaltfläche anhängen:

$('.fc-button-prev span').click(function(){
   alert('prev is clicked, do something');
});

$('.fc-button-next span').click(function(){
   alert('nextis clicked, do something');
});

  • Ok .. Ich dachte, es könnte eine bereits geschriebene Funktion für die Ursache geben … Danke ..

    – Neo

    22. Juli 2011 um 10:47 Uhr

  • Ist es möglich, die nächste/vorherige Aktion abzubrechen, dh den Benutzer Änderungen zuerst speichern zu lassen?

    – Mark Redmann

    13. Januar 2012 um 15:42 Uhr

  • In der aktuellen Version (2.5.0) sollten Sie verwenden $('.fc-prev-button') & $('.fc-next-button') Anstatt von $('.fc-button-prev span') & $('.fc-button-next span').

    – ymyzk

    22. Dezember 2015 um 22:39 Uhr


  • bei mir funktioniert es, wenn ich so spezifiziere… $(document).on(‘click’,’.fc-next-button’, function () {}

    – Pranesh Janarthanan

    7. September 2016 um 6:17 Uhr

  • Verwendung der viewRender Rückruf ist definitiv der bessere Weg

    – Kös Bong

    8. Juni 2017 um 20:47 Uhr

Benutzer-Avatar
Strähne

Das hat bei mir funktioniert:

$('body').on('click', 'button.fc-prev-button', function() {
  //do something
});

$('body').on('click', 'button.fc-next-button', function() {
  //do something
});

  • Danke mann! Dies ist der einzige Ansatz, der für mich funktioniert hat.

    – Carlos

    25. November 2017 um 4:29 Uhr

Wenn Sie darauf klicken, wird das viewRender-Ereignis ausgelöst. Sie können Ihren Code auch darin einfügen.

$('#calendar').fullCalendar({
    viewRender: function(view, element) {
        //Do something
    }
});

Benutzer-Avatar
Gianpiero

Ich sehe, es gibt andere funktionierende Antworten, aber meiner Meinung nach die einfachste und korrektere – zumindest mit Vollständiger Kalender v.4 – ist abzufangen prev und next ist, sie wie benutzerdefinierte Schaltflächen zu behandeln.

Hier mein Setup (mit Toaster nur zu Demozwecken)

document.addEventListener('DOMContentLoaded', function() {
  var calendarEl = document.getElementById('calendar');

  var calendar = new FullCalendar.Calendar(calendarEl, {
    plugins: [ 'dayGrid', 'timeGrid' ],
    header: {
      left: 'dayGridMonth,timeGridWeek,timeGridDay',
      center: 'title',
      right: 'prev,next'
    },
    footer: {
      left: '',
      center: '',
      right: 'prev,next'
    },
    customButtons: {
      prev: {
        text: 'Prev',
        click: function() {
                    // so something before
                    toastr.warning("PREV button is going to be executed")
                    // do the original command
                    calendar.prev();
                    // do something after
                    toastr.warning("PREV button executed")
        }
      },
      next: {
        text: 'Next',
        click: function() {
                    // so something before
                    toastr.success("NEXT button is going to be executed")
                    // do the original command
                    calendar.next();
                    // do something after
                    toastr.success("NEXT button executed")
        }
      },
    }
  });

  calendar.render();
});

Ein … sehen Codepen hier

Benutzer-Avatar
doppelter Piepton

Wenn der nächste und früher Schaltflächen angeklickt werden, die Veranstaltungen Funktion aufgerufen wird. Hier ist ein Beispiel zum Laden von Daten für das aktuelle Jahr:

$(document).ready(function() {
  loadCal();
});

function loadCal() {

  var current_url="";
  var new_url="";

  $('#calendar').fullCalendar({

    // other options here...

    events: function(start, end, callback) {

      var year = end.getFullYear();

      new_url="/api/user/events/list/" + id + '/year/' + year;

      if (new_url != current_url) {

        $.ajax({
          url: new_url,
          dataType: 'json',
          type: 'POST',
          success: function(response) {

            current_url = new_url;
            user_events = response;

            callback(response);
          }
        })
      } else {
        callback(user_events);
      }
    }
  })
}

Stellen Sie beim Abrufen der Ergebnisse in einer Abfrage sicher, dass Sie mindestens die letzten 10 Tage des Vorjahres und die ersten 10 Tage des Folgejahres einbeziehen.

Benutzer-Avatar
kw88

LÖSUNG IN FULLCALENDAR VERSION 5:

Wenn Sie Version 5 von FullCalendar verwenden, empfehle ich Ihnen, die zu verwenden datesSet anstatt die zu verwenden .click().

datesSet: function() {
    myFunction();
}

Das myFunction() wird jedes Mal aufgerufen, wenn der Datumsbereich des Kalenders geändert oder initialisiert wurde. Mit anderen Worten, wenn Sie auf die bereitgestellten Zurück-/Weiter-Schaltflächen im Kalender klicken, wird der Datumsbereich des Kalenders geändert und die myFunction() wird angerufen werden.

Hinweis: https://fullcalendar.io/docs/datesSet

Wenn du wirklich mitgehen willst .click() Übrigens funktioniert der folgende Code für Version 5 von FullCalendar.

$('.fc-prev-button').click(function(){
    myFunction();
});

$('.fc-next-button').click(function(){
    myFunction();
});

Beide Methoden funktionieren perfekt in meinem Projekt (VERSION 5 VON FULLCALENDAR), ich hoffe, dies kann Leuten helfen, die mit dem Problem zu kämpfen haben.

1224590cookie-checkWie rufe ich Ereignisse auf, wenn ich auf die Schaltflächen „Zurück“ und „Weiter“ klicke?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy