onClick事件不会在firefox或chrome中触发,仅在IE中

时间:2012-04-30 15:58:05

标签: asp.net html vb.net

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

1 个答案:

答案 0 :(得分:2)

这很奇怪,但我知道半结肠不存在干扰点击事件。所以试试

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

注意添加;

当然你总是可以使用类似jQuery的东西

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

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

});

API的bindon(更高版本的JQuery)部分也同样适用

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

老实说 - 如果它是遗留代码,那么在函数中会出现各种令人不愉快的情况,这会扰乱各种浏览器。我会评论这一切,但一两行然后从那里开始工作。祝你好运