Слияние двух обработчиков в одном - PullRequest
1 голос
/ 24 сентября 2019

У меня есть две кнопки btn-config и btn-json-config , и я хотел бы объединить их обработчики в одну.Я пробовал несколько способов, но безрезультатно.Я искал атрибуты данных html, но не смог найти решение.

<div class="btn btn-info margin-left-10" id="btn-config" data-*="configuration"><em class="fa fa-cog"></em> Configuration ..</div>

$("#btn-config").click(function () {
        var repository = $("#repositories").val();
        var connectionId = sessionStorage.getItem("connectionId");
        var branch = $("#branches").val();
        var button = "configuration";
        $.ajax({
            type: "GET",
            data: { connectionId: connectionId, repositoryName: repository, branch: branch, button: button},
            url: '@Url.Action("GetCurrentConfiguration", "Home")',
            success: function (data) {

                codeMirrorEditor.setValue(data.content);
                $("#modal-code-editor").modal('show');
                $("#modal-title").html(data.title)
                setTimeout(function () {
                    codeMirrorEditor.refresh();
                }, 200);
            },
            error: function () {
                console.log("Error: could not cancel running test...")
            }
        });
    });

и

<div class="btn btn-info margin-left-10" id="btn-json-config" data-*="json configuration"><em class="fa fa-cog"></em> JSon ..</div>

$("#btn-json-config").click(function () {
        var repository = $("#repositories").val();
        var connectionId = sessionStorage.getItem("connectionId");
        var branch = $("#branches").val();
        var button = "json configuration";
        $.ajax({
            type: "GET",
            data: { connectionId: connectionId, repositoryName: repository, branch: branch, button: button},
            url: '@Url.Action("GetCurrentConfiguration", "Home")',
            success: function (data) {

                codeMirrorEditor.setValue(data.content);
                $("#modal-code-editor").modal('show');
                $("#modal-title").html(data.title)
                setTimeout(function () {
                    codeMirrorEditor.refresh();
                }, 200);
            },
            error: function () {
                console.log("Error: could not cancel running test...")
            }
        });
    });

Я хотел бы, чтобы обе кнопки обрабатывались одним обработчиком, посколькуоба они делают одно и то же, но с двумя разными параметрами.

Любая помощь и / или указатели на то, где я должен искать, приветствуется.

Ответы [ 2 ]

1 голос
/ 24 сентября 2019
$("#btn-json-config, #btn-config").click(function () {
[...]
var button = $(this).attr("data-*");
[...[
}

ИЛИ

$(".btn-info").click(function () {
[...]
var button = $(this).attr("data-*");
[...[
}
0 голосов
/ 25 сентября 2019

Попробуйте использовать onclick для обеих кнопок и передать строку в функцию js:

<div onclick="myTest('configuration')" class="btn btn-info margin-left-10" id="btn-config" ><em class="fa fa-cog"></em> Configuration ..</div>

<div onclick=" myTest('json configuration')" class="btn btn-info margin-left-10" id="btn-json-config" ><em class="fa fa-cog"></em> JSon ..</div>

    function myTest(mydata){
        var repository = $("#repositories").val();
        var connectionId = sessionStorage.getItem("connectionId");
        var branch = $("#branches").val();
        var button = mydata;
        $.ajax({
            type: "GET",
            data: { connectionId: connectionId, repositoryName: repository, branch: branch, button: button},
            url: '@Url.Action("GetCurrentConfiguration", "Home")',
            success: function (data) {

                codeMirrorEditor.setValue(data.content);
                $("#modal-code-editor").modal('show');
                $("#modal-title").html(data.title)
                setTimeout(function () {
                    codeMirrorEditor.refresh();
                }, 200);
            },
            error: function () {
                console.log("Error: could not cancel running test...")
            }
        });
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...