我是新手,我正在尝试将震动效果应用于具有嵌入式表格但未成功的对话框。
当我尝试触发效果时
$( “#restore_password”)。效果( “摇晃”, {times:3},80);
只有form标签内的字段才能生效,但对话框本身却没有。
我的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');
}
});
任何想法?,这会有所帮助。
答案 0 :(得分:3)
Nalum的解决方案有效,但有点难看。试试这个:
$('#restore_password').parent().effect("shake", {times: 3}, 80);
答案 1 :(得分:2)
$(...).dialog(...);
创建一个没有id的新元素。
e.g。
<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);