web-dev-qa-db-ja.com

jquery-ui、dialog( 'open')を使用して変数をDIALOGに渡します

私は次のJSを持っています:

$('#listeditdialog').dialog('open');

次のダイアログが開きます。

$('#listeditdialog').dialog({
    autoOpen: false,
    resizable: false,
    position: ['center',150],
    width: 450,
    open: function(event, ui) {
        $("#listeditdialog").load("/projects/view/tasks/ajax/?listid=" + XXXX);
    },
    close: function(event, ui) {
        $("#listeditdialog").html('<p id="loading"> </p>');
    }
});

私の質問は、別のJS関数でダイアログオープン関数を使用する場合、ダイアログオープン関数を起動したクリックバインドからも取得できるlistID変数をどのように渡すことができるかです。

ありがとう!

24
AnApprentice

私があなたの権利を正しく理解している場合、$('#listeditdialog').dialog('open')を呼び出すときにアクセスできるデータが必要です。これは、openイベントが発生したときに利用できますか?

このような何かが役立ちます:

// where dialog is opened
$('#listeditdialog').data('listID', listIDVarOrSimilar); //assign the ID for later use
$('#listeditdialog').dialog('open')

// dialog definition
$('#listeditdialog').dialog({
    autoOpen: false,
    resizable: false,
    position: ['center',150],
    width: 450,
    open: function(event, ui) {
        var $led = $("#listeditdialog");
        $led.load("/projects/view/tasks/ajax/?listid=" + $led.data('listID'); //use the previously saved id
    },
    close: function(event, ui) {
        $("#listeditdialog").html('<p id="loading"> </p>');
    }
});`

http://api.jquery.com/data/

39
Dan Heberden