Держите диалог JQuery в DIV - PullRequest
4 голосов
/ 11 июня 2011

Я пытаюсь создать несколько диалогов jQuery, но я хотел бы ограничить их позиции внутри родительского div.Я использую следующий код для их создания (примечание, что опция oppility тоже не работает):

Ответы [ 2 ]

9 голосов
/ 23 октября 2012

Немного более полезная и полная версия вышеуказанного решения.

Это даже ограничивает изменение размера вне div тоже!

И JavaScript полностью прокомментирован.

// Public Domain
// Feel free to use any of the JavaScript, HTML, and CSS for any commercial or private projects. No attribution required.
// I'm not responsible if you blow anything up with this code (or anything else you could possibly do with this code).

jQuery(function($) 
{ 
    // When the document is ready run the code inside the brackets.
    $("button").button(); // Makes the button fancy (ie. jquery-ui styled)
    $("#dialog").dialog(
    { 
        // Set the settings for the jquery-ui dialog here.
        autoOpen: false, // Don't open the dialog instantly. Let an event such as a button press open it. Optional.
        position: { my: "center", at: "center", of: "#constrained_div" } // Set the position to center of the div.
    }).parent().resizable(
    { 
        // Settings that will execute when resized.
        containment: "#constrained_div" // Constrains the resizing to the div.
    }).draggable(
    { 
        // Settings that execute when the dialog is dragged. If parent isn't used the text content will have dragging enabled.
        containment: "#constrained_div", // The element the dialog is constrained to.
        opacity: 0.70 // Fancy opacity. Optional.
    });

    $("#button").click(function() 
    { 
        // When our fancy button is pressed the stuff inside the brackets will be executed.
        $("#dialog").dialog("open"); // Opens the dialog.
    });
});

http://jsfiddle.net/emilhem/rymEh/33/

0 голосов
/ 11 июня 2011

Я нашел способ сделать это. Теперь это мой метод создания диалога:

    var d = $('<div title="Title"></div>').dialog({
        autoOpen: true,
        closeOnEscape: false,
        resizable: false,
        width: 100,
        height: 100
    });

    d.parent().find('a').find('span').attr('class', 'ui-icon ui-icon-minus');
    d.parent().draggable({
        containment: '#controlContent',
        opacity: 0.70
    });

    $('#controlContent').append(d.parent());
...