Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTML+;带windows的Jquery web应用程序-重复ID和重复Javascript_Javascript_Jquery_Html - Fatal编程技术网

HTML+;带windows的Jquery web应用程序-重复ID和重复Javascript

HTML+;带windows的Jquery web应用程序-重复ID和重复Javascript,javascript,jquery,html,Javascript,Jquery,Html,我的web应用程序有问题。它的UI是基于窗口的,因此可以同时打开多个窗口。这些窗口是加载了AJAX调用的div。当所有窗口的内容都是唯一的时,一切正常 但是,有时需要同时打开两个或多个相同的窗口。两个窗口中加载的AJAX内容具有相同的HTML ID属性、相同的JS函数和用于此特定窗口的相同全局变量。很明显,一切都破裂了 我正在寻找解决这个问题的方法。我想到的唯一一个方法是使用ID属性进行更改,而改用类。当整个用户界面在启动时加载时,可以共享和加载JS函数。但是那些同名的全局变量呢 任何建议都将不

我的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。我不知道这个应用程序,所以这只是一个通用的解决方案。