2

在我的应用程序中,我从服务器端拉入 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"
                }
            }
        }
4

1 回答 1

2

这很奇怪,但我知道没有分号会干扰点击事件。所以试试

onclick="LoadChild(this.EntityID, this.EntityCat, 0, this.lnEquip);"

注意添加的;

或者

当然你总是可以使用像 jQuery 这样的东西

$('#img34635').click(function(){

    LoadChild(this.EntityID, this.EntityCat, 0, this.lnEquip);

});

API的bindor on(JQuery 的更高版本)部分也可以同样工作

或者

您的一个或多个参数可能需要用撇号包围。例如lnEntityCat,在代码的某些部分,参数肯定被视为字符串。

老实说-如果它是遗留代码,那么功能中可能会出现各种不愉快的情况,从而干扰各种浏览器。我会把它全部注释掉,但是一两行然后从那里开始。祝你好运

于 2012-04-30T16:01:47.480 回答