如何将震动效果应用到具有嵌入表单的对话框

发布于 2024-08-30 14:12:02 字数 1688 浏览 14 评论 0原文

我是这方面的新手,我正在尝试将震动效果应用于具有嵌入表单的对话框,但在此方面没有成功。

当我尝试触发效果时

$("#restore_password").effect("摇一摇", {次数: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');    
                }
            });

有什么想法吗?这会很有帮助。

I'm newbie on this, I'm trying to apply the shake effect to a dialog that has an embedded form but not success on this.

When I try to trigger the effect

$("#restore_password").effect("shake",
{times: 3}, 80);

only the fields inside the form tag is taking the effect but the dialog box itself doesn't.

My 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>

My dialog

$("#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');    
                }
            });

Any ideas?, it would be helpful.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦忆晨望 2024-09-06 14:12:02

Nalum 的解决方案有效,但有点难看。试试这个:

$('#restore_password').parent().effect("shake", {times: 3}, 80);

Nalum's solution worked, but was a little ugly. Try this one:

$('#restore_password').parent().effect("shake", {times: 3}, 80);
寄人书 2024-09-06 14:12:02

$(...).dialog(...); 创建一个没有 id 的新元素。

例如

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

变成

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

所以你的代码正在工作。您需要做的就是定位对话框 div,例如

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

$(...).dialog(...); creates a new element without an id.

e.g.

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

becomes

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

So your code is working. What you need to do is target the dialog div e.g.

$('div[aria-labelledby=ui-dialog-title-testingDiv]').effect("shake", {times: 3}, 80);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文