2

SimpleModal Jqueryプラグインを使用していますが、うまく機能します。

ただし、モーダルdivの幅と高さを変更する必要がある場合があるため、モーダルをページの中央に自動的に再配置する必要があります。SimpleModalがこれを行うためにsetPosition()関数を使用していることがわかりました。モーダルが起動すると自動的に呼び出されます。

そのため、モーダルdivの次元が変更されたときに上記の関数を呼び出そうとしましたが、機能しません。

$('#mybutton').click(function() {
    //code here to resize the modal
    $.modal.impl.setPosition(); //doesn't work. note that at this point, the modal is still active (displayed)
});

あなたはなにか考えはありますか?

4

3 に答える 3

4

現在のバージョン(1.3.5)では、コールバックでダイアログの位置を変更できます。例えば:

$('#foo').modal({
    onShow: function (dialog) {
        var modal = this; // you now have access to the SimpleModal object

        // do stuff here

        // re-position
        modal.setPosition();
    }
});

私はこれらの「ユーティリティ」関数にいくつかの便利なメソッドを提供するバージョン1.3.6に取り組んでいます。

于 2010-07-22T21:39:47.137 に答える
3

要素 ( と呼びましょうtheElement) をモーダルにすると、 でラップされますdiv#simplemodal-containerdiv#simplemodal-containerと同じtheElement寸法になります (実際には、 よりも 2px 高く/広くなりますtheElement)

実際にサイズを変更している要素はわかりませんが、theElement. その場合、#simplemodal-containerの寸法は更新されず、再度配置しても効果はありません。コンテナーのサイズを明示的に変更する必要があります。

したがって、サイズ変更後、再度配置する前に、次の操作を行います。

$("#simplemodal-container").css({height: newHeight, width: newWidth});

ここで、 と の新しい次元を仮定newHeightnewWidthますtheElement(simplemodal のポリシーに従いたい場合は +2)

于 2010-07-13T13:47:36.080 に答える
1

これは私のために働く:

var modal = $.modal("<div>...</div>");


$('#mybutton').click(function() {
    //code here to resize the modal
    modal.setPosition();
});
于 2011-02-01T00:49:21.527 に答える