在我的应用程序中,我从服务器端提取 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"
}
}
}
最佳答案
这很奇怪,但我知道分号的缺失会干扰点击事件。所以尝试一下
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 的更高版本)部分也同样有效
或
您的一个或多个参数可能需要用撇号括起来。例如,在代码的某些部分,参数 lnEntityCat
肯定被视为字符串。
老实说 - 如果它是遗留代码,那么该函数中可能会出现各种令人不愉快的情况,从而干扰各种浏览器。我会将其全部注释掉,只保留一两行,然后从那里开始处理。祝你好运
关于asp.net - onClick 事件不会在 Firefox 或 Chrome 中触发,仅在 IE 中触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10386683/