Как применить эффект встряхивания к диалогу со встроенной формой - PullRequest
3 голосов
/ 29 апреля 2010

Я новичок в этом, я пытаюсь применить эффект встряхивания к диалогу со встроенной формой, но безуспешно.

Когда я пытаюсь вызвать эффект

$ ( "# restore_password"). Эффект ( "трясти", {времена: 3}, 80);

только поля внутри тега формы оказывают влияние, но само диалоговое окно - нет.

Мой div

<html>
    <body>
        <div id="restore_password" title="Confirmation code" class="ui-widget-content ui-corner-all" >
           <form> <fieldset> <label for="code">Code</label> <input type="text" name="codecon" id="codecon" class="text ui-widget-content ui-corner-all" /> </fieldset> 
           </form> 
        </div>
    </body>
</html>

Мой диалог

$("#restore_password").dialog({
                height: 220,
                width: 310,
                autoOpen: false,
                modal: true,
                draggable: false,
                resizable: false,
                show: 'puff',
                hiden: 'puff',

                buttons: {

                    "Confirm": function(){

                        $("#change_password").dialog('open');

                    },

                    "Cancel": function(){

                        $(this).dialog('close');
                        $("#forgot_data").dialog('close');
                        $("#dialog-form").dialog('open');
                        setTimeout(function(){
                                $("#name").focus();

                            }, 800);

                    }
                },
                close: function() {
                    allFields.val('').removeClass('ui-state-error');    
                }
            });

Есть идеи? Это было бы полезно.

Ответы [ 2 ]

3 голосов
/ 05 января 2012

Решение Налума сработало, но немного уродливо. Попробуйте это:

$('#restore_password').parent().effect("shake", {times: 3}, 80);
2 голосов
/ 29 апреля 2010

$(...).dialog(...); создает новый элемент без идентификатора.

, например

<div id="testingDiv">...</div>

становится

<div style="..." class="..." tabindex="..." role="dialog" aria-labelledby="ui-dialog-title-testingDiv">
    ...
    <div id="testingDiv">...</div>
    ...
</div>

Итак, ваш код работает. Вам нужно настроить таргетинг на диалоговое окно, например,

$('div[aria-labelledby=ui-dialog-title-testingDiv]').effect("shake", {times: 3}, 80);
...