callBack

Вопросы по вёрстке и JavaScript
Ответить
caHek2x
Сообщения: 1240
Зарегистрирован: 2016.04.12, 20:41

callBack

Сообщение caHek2x »

Доброй ночи.
Суть такая:

есть некая ф-ция, например "dialog".
эта ф-ция делает ajax запрос, который ей возвращает html содержимое диалога, который я вывожу и в этом диалоге(пришедшем с сервера) есть кнопка.
вот нажав на эту кнопку я хочу чтоб выполнился callback который я пропишу в ф-цию dialog...
то есть что то типа:

view/1.php

Код: Выделить всё

<script>
    dialog(function(){
        alert(1);                
    });

    function dialog(callback) {
        $.ajax({
            //------------------
            url: "view/2.php",
            data: ....
            //------------------
            success: function (msg) {
                $(...).html(msg);
            },
            //------------------
        });
    }
</script>
view/2.php

Код: Выделить всё

<button class="btn2" onclick="callback()">123</button> 
------------------------------------------

это не рабочий код это всего лишь для примера чтоб более наглядно обьяснить мой вопрос ...
как то такое можно реализовать ?
я пока вижу только вариант передавать не анонимную ф-цию а название ф-ции ... и тогда я смогу её подставить в 2.php ...
или передавать кусок кода как текст и его потом уже подставить ...
может есть более нормальные идеи чтоб можно было передать анонимную ф-цию ?
Аватара пользователя
rugabarbo
Сообщения: 1063
Зарегистрирован: 2015.06.21, 16:21
Контактная информация:

Re: callBack

Сообщение rugabarbo »

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

Например,

Код: Выделить всё

<button class="btn2" data-callback="myFunctionName">123</button>
Соответственно, на уровне jQuery-кода это можно достать так:

Код: Выделить всё

$(".btn2").click(function() {
    var callback = $(this).data("callback");

    // остальной код
});
Это помогает в том числе и в динамические диалоговые окна передать конфигурацию их вызова.
Ответить