Open In App

jQWidgets jqxScheduler contextMenuOpen Property

Improve
Improve
Like Article
Like
Save
Share
Report

jQWidgets is a JavaScript framework for making web-based applications for PC and mobile devices. It is a very powerful, optimized, platform-independent, and widely supported framework. The jqxScheduler widget is used to show a set of appointments in a day, week, month, timeline day, timeline week as well as timeline month views.

The contextMenuOpen property is used to set or return the invoked function whenever the context menu is opened from the displayed jqxScheduler. It is of type Function and its default value is null.

Syntax:

Set the contextMenuOpen property.

$("#Selector").jqxScheduler({ 
    contextMenuOpen: function (list, appointment, event) {
        $('#log').text("Context menu is opened!");
    },
});

Return the contextMenuOpen property.

var contextMenuOpen = 
    $('#Selector').jqxScheduler('contextMenuOpen');

Linked Files: Download jQWidgets from the given link. In the HTML file, locate the script files in the downloaded folder.

<link rel=”stylesheet” href=”jqwidgets/styles/jqx.base.css” type=”text/css” />
<script type=”text/javascript” src=”scripts/jquery-1.11.1.min.js”></script>
<script type=”text/javascript” src=”jqwidgets/jqx-all.js”></script>
<script type=”text/javascript” src=”jqwidgets/jqxscheduler.js”></script>
<script type=”text/javascript” src=”jqwidgets/jqxscheduler.api.js”></script>

Example: The below example illustrates the jqxScheduler contextMenuOpen property in jQWidgets.

HTML




<!DOCTYPE html>
<html lang="en">
  
<head>
    <link rel="stylesheet" 
          href="jqwidgets/styles/jqx.base.css" 
          type="text/css" />
    <script type="text/javascript" 
            src="scripts/jquery-1.11.1.min.js">
    </script>
    <script type="text/javascript" 
            src="jqwidgets/jqx-all.js">
    </script>
    <script type="text/javascript" 
            src="jqwidgets/jqxscheduler.js">
    </script>
    <script type="text/javascript"
            src="jqwidgets/jqxscheduler.api.js">
    </script>
</head>
  
<body>
    <center>
        <h1 style="color:green">
            GeeksforGeeks
        </h1>
  
        <h3>jQWidgets jqxScheduler contextMenuOpen
            property
        </h3>
  
        <div id="jqxs"></div>
        <br>
  
        <div id="log"></div>
    </center>
  
    <script type="text/javascript">
        $(document).ready(function () {
            var onlineClasses = new Array();
            var day1 = {
                i: "1",
                Topic: "C functions",
                schedule: 'room_no. 1',
                begin: new Date(2021, 09, 13, 11),
                final: new Date(2021, 09, 13, 12)
            }
            var day2 = {
                i: "2",
                Topic: "C++",
                schedule: 'room_no. 2',
                begin: new Date(2021, 09, 14, 11),
                final: new Date(2021, 09, 14, 12)
            }
            var day3 = {
                i: "3",
                Topic: "Java",
                schedule: 'room_no. 3',
                begin: new Date(2021, 09, 15, 10),
                final: new Date(2021, 09, 15, 14)
            }
            var day4 = {
                i: "4",
                Topic: "Scala library functions",
                schedule: 'room_no. 1',
                begin: new Date(2021, 09, 16, 11),
                final: new Date(2021, 09, 16, 13)
            }
            var day5 = {
                i: "5",
                Topic: "Test",
                schedule: 'room_no. 3',
                begin: new Date(2021, 09, 17, 10),
                final: new Date(2021, 09, 17, 12)
            }
            onlineClasses.push(day1, day2, day3, day4, day5);
            var src =
            {
                dataType: "array",
                localData: onlineClasses,
                id: 'i'
            };
            $("#jqxs").jqxScheduler({
                source: new $.jqx.dataAdapter(src),
                width: "400px",
                height: "350px",
                date: new $.jqx.date(2021, 10, 13),
                views: ['weekView', 'dayView'],
                contextMenuCreate: function (list, set) {
                    var src = set.source;
                    src.push({ id: "remove", label: "Remove Appointment" });
                    src.push({
                        id: "condition", label: "Set conditions", items:
                            [
                                { label: "Free", id: "red" },
                                { label: "Tentative", id: "orange" },
                            ]
                    });
                },
                contextMenuItemClick: function (list, appointment, event) {
                    var arguments = event.args;
                    switch (arguments.id) {
                        case "remove":
                            $("#jqxs").jqxScheduler(
                                'deleteAppointment', appointment.id
                            );
                            return false;
                        case "red":
                            $("#jqxs").jqxScheduler(
                                'setAppointmentProperty',
                                appointment.id, 'condition', 'red'
                            );
                            return false;
                        case "orange":
                            $("#jqxs").jqxScheduler(
                                'setAppointmentProperty',
                                appointment.id, 'condition', 'orange'
                            );
                            return false;
                    }
                },
                contextMenuOpen: function (list, appointment, event) {
                    $('#log').text("Context menu is opened!");
                },
                resources:
                {
                    dataField: "schedule",
                    source: new $.jqx.dataAdapter(src)
                },
                appointmentDataFields:
                {
                    id: "i",
                    subject: "Topic",
                    from: "begin",
                    to: "final",
                    resourceId: 'schedule',
                },
  
            });
            $('#jqxs').jqxScheduler('ensureAppointmentVisible', '1');
        });
    </script>
</body>
  
</html>


Output:

jQWidgets jqxScheduler contextMenuOpen Property

jQWidgets jqxScheduler contextMenuOpen Property

Reference: https://www.jqwidgets.com/jquery-widgets-documentation/documentation/jqxscheduler/jquery-scheduler-api.htm



Last Updated : 07 Feb, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads