0

次のコードがあります

if(data.title != false) {
    $('#modal').find('.modal-header h3').html(data.title);
}
if(data.buttons != false) {
    $.each(data.buttons, function(i, button){
        $('.modal-footer').append('<button class="btn" id="btn_'+button.text+'">'+button.text+'</button>');

        if(jQuery.type(button.click) === 'function') {
            console.log('jQuery says it is a function')
            $('.modal-footer').off('click', '#btn_'+button.text).on('click', '#btn_'+button.text, button.click());
        }
    });
}

これは、ブートストラップ モーダル (ダイアログ) を開くために使用される関数の一部です。jQueryがダイアログに持っているように、カスタムボタンをモーダルに追加する機能を追加しようとしていました。

私は次のように送ります。

makeBootstrapModal({
    buttons: [
        {
            text:'OK',
            click: function() {
                $('#modal').modal('close');
            }
        },
        {
            text:'Annuleren',
            click: function() {
                $('#modal').modal('close');
            }
        },
    ],
    title: 'Hallo',
});

タイトルが適切に追加され、コンソールで確認すると、button.click が関数であることがわかりますが、クリック イベントとして追加しようとすると、次のエラーが発生します。

TypeError: data[option] is not a function   

if (typeof option == 'string') data[option]()

このような関数を使用するのは初めてです。これを機能させる方法を知っている人はいますか?前もって感謝します!

4

1 に答える 1

0

解決しました。私はjQueryダイアログに慣れてcloseいるので、モーダル関数として置きます。Bootstrapモーダルはhide、それを再び閉じるための機能としてのみ受け取ります。今ではうまく機能します。

于 2013-04-26T09:56:02.970 に答える