HTML+;带windows的Jquery web应用程序-重复ID和重复Javascript
我的web应用程序有问题。它的UI是基于窗口的,因此可以同时打开多个窗口。这些窗口是加载了AJAX调用的div。当所有窗口的内容都是唯一的时,一切正常 但是,有时需要同时打开两个或多个相同的窗口。两个窗口中加载的AJAX内容具有相同的HTML ID属性、相同的JS函数和用于此特定窗口的相同全局变量。很明显,一切都破裂了 我正在寻找解决这个问题的方法。我想到的唯一一个方法是使用ID属性进行更改,而改用类。当整个用户界面在启动时加载时,可以共享和加载JS函数。但是那些同名的全局变量呢HTML+;带windows的Jquery web应用程序-重复ID和重复Javascript,javascript,jquery,html,Javascript,Jquery,Html,我的web应用程序有问题。它的UI是基于窗口的,因此可以同时打开多个窗口。这些窗口是加载了AJAX调用的div。当所有窗口的内容都是唯一的时,一切正常 但是,有时需要同时打开两个或多个相同的窗口。两个窗口中加载的AJAX内容具有相同的HTML ID属性、相同的JS函数和用于此特定窗口的相同全局变量。很明显,一切都破裂了 我正在寻找解决这个问题的方法。我想到的唯一一个方法是使用ID属性进行更改,而改用类。当整个用户界面在启动时加载时,可以共享和加载JS函数。但是那些同名的全局变量呢 任何建议都将不
任何建议都将不胜感激。HTML id属性在整个文档的上下文中必须是唯一的。你可以破解它或者重新思考它 <>如果你决定重新考虑-考虑全局变量。< /P> 帮助重新思考:如果使用ID识别对象,可以使用如下模式: w11-22222 其中w只是一个字母(ID不应该以数字开头),11是一个窗口编号器,-是一个-;)22222是你目前使用的身份证 当您需要旧id时,它只是
id.substring(4)
全局变量应替换为包含数组/对象的全局对象,其中包含有关windows等的信息
只是一个想法:
可以用一种不需要ID就可以获得windows的方式设计界面。创建窗口时,请执行以下操作:
var $awindow=$('<div></div>')...//build upon it with attr and append
$awindow.appendTo('body');
AwesomeGlobalObjectToControllStuff.rememberWindow('the key to find it',$awindow);
var$awindow=$(“”)//使用attr和append在其上构建
$awindow.appendTo(‘body’);
AwesomeGlobalObjectToControllStuff.rememberWindow(“找到它的钥匙,$awindow”);
然后使用对象从其存储中返回$awindow。谢谢您的回答,我正在考虑做类似的事情,所以您刚刚确认了我的想法。哦,好吧,前面有很多讨厌的工作:-(取决于应用程序-可能有一个地方可以确保唯一的ID。我不知道这个应用程序,所以这只是一个通用的解决方案。