1
下面是我的問題流程: 我有一個模式對話框,當我打開一個新對話框時,它會在模態對話框中打開contentOne.jsp。當我點擊contentOne.jsp上的鏈接時,模式對話框將刷新並使用我的href引用打開contentTwo.jsp。然後關閉對話框。當我再次打開對話框時,它會打開contentTwo.jsp而不是contentOne.jsp。我嘗試了destroyDescendants,破壞了......但他們沒有奏效。Dojo - dijit.dialog
我有,有一個鏈接,打開如下所示的模式對話框的標題:
<div style="position: relative;right: 50px; top: 15px;">
<a onclick="dijit.byId('selectEquipmentInfo').show(); return false;" href="" />Add Equipment</a>
</div>
<%-- start equipment info dialog link --%>
<div id="selectEquipmentInfo" style="display:none;" name="selectEquipmentInfo" dojotype="dijit.Dialog" draggable="false" title="Select Equipment">
<div style="width:870px; height:400px; padding: 10px; overflow-y:auto;" href="">
<%@ include file="../../StoreInfoArea/ProductFamilyDisplay.jspf"%>
</div>
</div>
這將打開一個模態對話框。在我的ProductFamilyDisplay.jspf,我有一個項目鏈接到另一個JSP頁面上「HREF」像下面
<div id="productFamily" class="productFamilyContainer">
<div id= "prdctFamilyRow" class="productFamilyColumn">
<c:forEach var="equipmentInfo" items="${equipmentTestList}" varStatus="status">
<a href="${EquipmentModelsViewURL}"><c:out value="${equipmentInfo.value}" /></a><br />
</c:forEach>
</div>
,這會使得在同一個模式對話框,並且它被這個JavaScript控制:
<script type="text/javascript">
dojo.addOnLoad (function(event){
dojo.connect(dijit.byId('selectEquipmentInfo'), 'onClick', clicked);
});
var clicked=function(event) {
var dialog=dijit.byId('selectEquipmentInfo');
var contentNode=dialog.domNode;
var node = event.target;
var attrId = dojo.attr(node, "id");
if (attrId =="dijitCloseLink" || attrId == "dijitCloseImg") {
dialog.set('href','');
} else {
if("a" == node.nodeName.toLowerCase()){
dialog.href=node.href;
dialog.refresh();
dojo.stopEvent(event);
}
}
};
</script>
你好,使用.destroy()基本上會破壞整個對話框。當我再次點擊'Select Equipment'時,它不起作用,因爲這個代碼是dijit.byId('selectEquipmentInfo')。show();導致錯誤。 'selectEquipmentInfo'未定義。 – user1260084
在這種情況下,需要再次調用您創建對話框的代碼。 –