2

私は3つのjspページを作成しています。各ページには異なる ID を持つ 4 つのボックスがあります (つまり、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 (typeof document.getElementById('box5') !== 'undefined'){
    // continue
}
于 2012-04-30T07:56:51.563 に答える
0

これを試してください: これにより、ページ上のすべての 'dragableBox' が取得され、'dragDropObj.addSource(...,true);' が実行されます。JQuery を使用せずに id=box[x] がある場合:

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 に答える
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 に答える