Spanky
Spanky

Reputation: 709

Combining functions in jQuery

jQuery(function ($) {
$('.confirmbttn').click(function (e) {
e.preventDefault();


    // example of calling the confirm function
    // you must use a callback function to perform the "yes" action
    confirm("", function () {

    });
});
});

function confirm(message, callback) {
$('.confirm').modal({
    closeHTML: "<a href='#' title='Close' class='modal-close'>x</a>",
    position: ["20%",],
    overlayId: 'confirm-overlay',
    containerId: 'confirm-container', 
    onShow: function (dialog) {
        var modal = this;

        $('.message', dialog.data[0]).append(message);

        // if the user clicks "yes"
        $('.yes', dialog.data[0]).click(function () {
            // call the callback
            if ($.isFunction(callback)) {
                callback.apply();
            }
            // close the dialog
            modal.close(); // or $.modal.close();
        });
    }
});

}


jQuery(function ($) {
$('.confirmbttn2').click(function (e) {
e.preventDefault();


    // example of calling the confirm function
    // you must use a callback function to perform the "yes" action
    confirm("", function () {

    });
});
});

function confirm(message, callback) {
$('.confirm').modal({
    closeHTML: "<a href='#' title='Close' class='modal-close'>x</a>",
    position: ["20%",],
    overlayId: 'confirm-overlay',
    containerId: 'confirm-container', 
    onShow: function (dialog) {
        var modal = this;

        $('.message', dialog.data[0]).append(message);

        // if the user clicks "yes"
        $('.yes', dialog.data[0]).click(function () {
            // call the callback
            if ($.isFunction(callback)) {
                callback.apply();
            }
            // close the dialog
            modal.close(); // or $.modal.close();
        });
    }
});

}

UPDATE: So my code now works fine because I changed the name of my functions. Thanks but now I would like to only use "jQuery(function ($) {..." once. I'm using it twice. How can I combine all of my functions using only one "jQuery(function ($) {..."

jQuery(function ($) {
    $('.confirmbttn').click(function (e) {
        e.preventDefault();
        execChart1("", function () {
        });
    });
});

function execChart1(message, callback) {
    $('.confirm').modal({
        closeHTML: "<a href='#' title='Close' class='modal-close'>x</a>",
        position: ["20%",],
        overlayId: 'confirm-overlay',
        containerId: 'confirm-container', 
        onShow: function (dialog) {
            var modal = this;

            $('.message', dialog.data[0]).append(message);

            // if the user clicks "yes"
           $('.yes', dialog.data[0]).click(function () {
                // call the callback
                if ($.isFunction(callback)) {
                    callback.apply();
                }
               // close the dialog
                modal.close(); // or $.modal.close();
            });
        }
    });
}


jQuery(function ($) {
$('.confirmbttn1').click(function (e) {
    e.preventDefault();
    execChart2("", function () {
    });
});
});

function execChart2(message, callback) {
$('.confirm1').modal({
    closeHTML: "<a href='#' title='Close' class='modal-close'>x</a>",
    position: ["20%",],
    overlayId: 'confirm-overlay',
    containerId: 'confirm-container', 
    onShow: function (dialog) {
        var modal = this;

        $('.message', dialog.data[0]).append(message);

        // if the user clicks "yes"
        $('.yes', dialog.data[0]).click(function () {
            // call the callback
            if ($.isFunction(callback)) {
                callback.apply();
            }
            // close the dialog
            modal.close(); // or $.modal.close();
        });
    }
});
}

Upvotes: 0

Views: 102

Answers (1)

Barmar
Barmar

Reputation: 780798

You need to bind a local variable to the instance that was clicked on:

$('.confirmbttn, .confirmbttn2').click(function (e) {
    e.preventDefault();
    var theButton = this;

    // example of calling the confirm function
    // you must use a callback function to perform the "yes" action
    confirm("", function () {
        // Do stuff with theButton
    });
});

Upvotes: 1

Related Questions