在我的应用程序中,我从服务器端提取http代码。当此代码放入应用程序时 - 事件将在IE中单击时发生,但不会在任何其他浏览器中发生。下面是处理被点击的图像和事件的代码部分。
<img canExpand="true" style="cursor:hand" id="img34635" src="../images/plus.gif" EntityID="346" EntityCat="35" onclick="LoadChild(this.EntityID, this.EntityCat, 0, this.lnEquip)">
LoadChild是页面客户端的javascript函数。当在IE以外的任何其他地方点击图像时,没有任何反应。谁能明白为什么会这样?这可能是格式化问题。再次感谢。
编辑 - 这是javascript函数加载子项
function LoadChild(lnEntityID, lnEntityCat, FullExpand, EquipID) {
document.getElementById('dropTypes').disabled = false;
document.getElementById('dropTypes').style.background = "white";
DescStatus = 0;
if (lnEntityCat == 0) {
window.status = "Loading the tree...";
PageMethods.LoadChild(lnEntityID, lnEntityCat, GLOBALEQUIPID, FullExpand, 0, 0, 1, LoadChildCallback);
}
else if (document.getElementById('img' + lnEntityID + lnEntityCat).canExpand == "true") {
if (document.getElementById('div' + lnEntityID + lnEntityCat).style.display == 'none') {
document.getElementById('div' + lnEntityID + lnEntityCat).style.display = 'block';
document.getElementById('img' + lnEntityID + lnEntityCat).src = "../images/minus.gif"
window.status = "Loading the tree...HERE";
PageMethods.LoadChild(lnEntityID, lnEntityCat, GLOBALEQUIPID, FullExpand, 0, 0, 1, LoadChildCallback);
}
else {
document.getElementById('div' + lnEntityID + lnEntityCat).style.display = 'none';
document.getElementById('img' + lnEntityID + lnEntityCat).src = "../images/plus.gif"
}
}
}
答案 0 :(得分:2)
这很奇怪,但我知道半结肠不存在干扰点击事件。所以试试
onclick="LoadChild(this.EntityID, this.EntityCat, 0, this.lnEquip);"
注意添加;
或强>
当然你总是可以使用类似jQuery的东西
$('#img34635').click(function(){
LoadChild(this.EntityID, this.EntityCat, 0, this.lnEquip);
});
API的bind
或on
(更高版本的JQuery)部分也同样适用
或强>
您的一个或多个参数可能需要用撇号包围。例如,param lnEntityCat
在代码的某些部分肯定被视为字符串。
老实说 - 如果它是遗留代码,那么在函数中会出现各种令人不愉快的情况,这会扰乱各种浏览器。我会评论这一切,但一两行然后从那里开始工作。祝你好运