我添加一个jQuery用户界面对话框,以我的Rails 3 web应用程序如下:jQuery UI对话框 - 只要我将第二个对话框添加到应用程序,它会打破?
permissions = $('<div id="dialog-content"></div>')
.html('<div class="notification"><h4>Loading...</h4></div>')
.dialog({
autoOpen: false,
dialogClass: 'dialog',
width: 460,
minHeight: 80,
position: ['center',130],
open: function() {
$.ajax({url: '/stuff/'})
},
close: function() {
$('#dialog-content').html('<div class="notification"><h4>Loading...</h4></div>');
}
});
$(".teammember-dialog").live("click",function(){
permissions.dialog('open');
return false;
});
什么是令人费解对我来说我只是增加了一个对话框,以我的应用程序如下:
dialogstuff2 = $('<div id="dialog-content"></div>')
.html('<div class="notification"><h4>Loading...</h4></div>')
.dialog({
autoOpen: false,
dialogClass: 'dialog',
width: 460,
minHeight: 80,
position: ['center',130],
open: function() {
$.ajax({url: '/stuff/'})
},
close: function() {
$('#dialog-content').html('<div class="notification"><h4>Loading...</h4></div>');
}
});
$("#addlink").live("click",function(){
dialogstuff2.dialog('open');
return false;
});
随着第二个对话框,它打破了两个对话框。它们都打开,但它们不响应对话框调用Web服务器时加载的JS。如果我删除第二个,第一个可以正常工作。但是,当两者都在页面上时,当我点击加载,对话框仍然保持默认的加载文本“正在加载...”
以前有人看过这个吗?谢谢
谢谢,这似乎是一个问题。但拥有不同的ID似乎不太干?有没有办法使它使用相同的ID,所以事情不会变得疯狂混乱,因为我的应用程序可能会有多个对话框?...还有很多对话框设置是相同的,有没有办法将它设置为所有的对话框,只需添加自定义对话框的属性,如每个对话框的帖子URL? – AnApprentice 2010-11-01 00:24:00
关于DRY,ID是为了在页面中独一无二的,所以浏览器和jQuery会利用它来获得性能和其他原因。也许使ID反映对话框的目的将有所帮助?至于全局设置,我敢说这是可能的一个小封装函数,但是最好作为一个单独的问题提出,因为我的Javascript仍然是新手:) – amarsuperstar 2010-11-01 00:30:55
DRY主体最好通过创建包装器方法,构建器或工厂在JavaScript中处理作为@ a,arsuperstar提到。我在下面用一些说明这个想法的方法回答。 – Gabriel 2010-11-01 00:59:41