2

我知道已经有关于 jQuery 链接的各种问题,但我找不到这个(可能相当简单)的答案。原谅 jQuery 的新手。

我正在寻找的是一种将不同动作/事件应用于同一对象的简短方法。更具体地说,我有以下代码

$('#dlg').dialog('open').dialog('setTitle','Title').dialog('refresh','dlg.html');

有没有办法不写.dialog三遍,而是类似的东西

$('#dlg').dialog(action 1, action 2, etc.)

? 我还不熟悉语法,所以我不知道参数是否需要放在花括号中,中间有分号,或者逗号,或者......感谢您的帮助!

PS:这个例子中的对话框是一个 jQuery EasyUI 对话框,如果这有什么不同的话。


更新:看到我的问题的答案似乎是“否”,编写上述命令的最佳方法是什么?即是

$('#dlg').dialog('open')
$('#dlg').dialog('setTitle','Title')
$('#dlg').dialog('refresh','dlg.html')

与上面的行相比,在效率方面更好/更差,或者还有另一种(更好的)方法?感谢您的快速帮助!

4

3 回答 3

2

对于你正在做的事情,基本上没有其他选择。你可以用循环做一些疯狂的事情,但归根结底,它只会增加复杂性,除非你在整个代码中这样做数百次,否则不值得付出努力。

我假设你知道你可以在一次调用中传递一个包含各种值的对象来初始化一个对话框,根据 EasyUI 文档:

$('#dd').dialog({  
    title: 'My Dialog',  
    width: 400,  
    height: 200,  
    closed: false,  
    cache: false,  
    href: 'get_content.php',  
    modal: true  
});  
于 2013-03-05T12:27:16.910 回答
1

不,在 jQuery 中没有办法实现这一点,但您可以检查具体的实现是否有任何支持。

另一种测试意志的解决方案destroy每次都会创建对话框。

$('#dlg').dialog('destroy');
$('#dlg').dialog({....})
于 2013-03-05T12:23:39.410 回答
0

您也许可以一次设置一些小部件参数,但是之后您仍然必须调用诸如“打开”之类的方法

$('#target').dialog(
    width: 400,  
    height: 200,
    title:,
    // ...
}); 
$('#target').open()
// ...

有关对话框参数和小部件签名的信息,请参阅文档

于 2013-03-05T12:32:40.557 回答