2

我正在创建 3 个 jsp 页面。每页有4个不同id的盒子(即第1页的box1、box2、box3、box 4;第2页的box 5、box6、box7、box8;第3页的box9、box10、box11、box12)。以下是第 1 页中的示例代码:

<div class="dragableBox" id="box1">CAT</div>
<div class="dragableBox" id="box2">DOG</div>
<div class="dragableBox" id="box3">HORSE</div>
<div class="dragableBox" id="box4">TIGER</div>

在每一页中还有一个脚本。在脚本中,我故意使用上面所有的 id 作为函数的参数。以下是第 1 页中的示例代码:

dragDropObj.addSource('box1',true);
dragDropObj.addSource('box2',true);
dragDropObj.addSource('box3',true); 
dragDropObj.addSource('box4',true); 
dragDropObj.addSource('box5',true); 
dragDropObj.addSource('box6',true); 
dragDropObj.addSource('box7',true); 
dragDropObj.addSource('box8',true); 
dragDropObj.addSource('box9',true); 
dragDropObj.addSource('box10',true);    
dragDropObj.addSource('box11',true);    
dragDropObj.addSource('box12',true);    

我必须这样做,因为据我所知,这是我的程序运行的唯一方法。我遇到的问题是每次启动程序都会出现警告:“id为box5的源元素不存在”

尽管该程序在此警告下仍然可以正常工作,但我仍然想消除该警告。

我的问题是:如何阻止此类警告出现?HTML中有一种错误捕获方法吗?

4

3 回答 3

0
if (document.getElementById('box1')){
    dragDropObj.addSource('box1',true);
    dragDropObj.addSource('box2',true);
    dragDropObj.addSource('box3',true); 
    dragDropObj.addSource('box4',true);
}
if (document.getElementById('box5')){
    dragDropObj.addSource('box5',true);
    dragDropObj.addSource('box6',true);
    dragDropObj.addSource('box7',true); 
    dragDropObj.addSource('box8',true);
}
if (document.getElementById('box9')){
    dragDropObj.addSource('box9',true);
    dragDropObj.addSource('box10',true);
    dragDropObj.addSource('box11',true); 
    dragDropObj.addSource('box12',true);
}

编辑:

更好的解决方案:

groupFirstMember = 1;
if (document.getElementById('box5')){
    groupFirstMember = 5;
}
else if (document.getElementById('box9')){
    groupFirstMember = 9;
}

for(i=0;i<4;i++){
    dragDropObj.addSource("box"+str(groupFirstMember+i),true);
}
于 2012-04-30T07:54:05.317 回答
0

在添加元素之前检查元素的存在。

if (typeof document.getElementById('box5') !== 'undefined'){
    // continue
}
于 2012-04-30T07:56:51.563 回答
0

试试这个:这将抓取页面上的所有“dragableBox”并运行“dragDropObj.addSource(...,true);” 如果他们有一个 id=box[x] 而不使用 JQuery:

boxes = document.getElementsByClassName('dragableBox');
for (i=0; i < boxes.length; ++i) {
  var id = boxes[i].id;
  if(id.substring(0,3)==='box')
    dragDropObj.addSource(id,true);  
}
于 2012-04-30T08:17:14.570 回答