asp.net - onClick 事件不会在 Firefox 或 Chrome 中触发,仅在 IE 中触发

标签 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"
                }
            }
        }

最佳答案

这很奇怪,但我知道分号的缺失会干扰点击事件。所以尝试一下

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

注意添加的;

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

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

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

});

API 的 bindon(JQuery 的更高版本)部分也同样有效

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

老实说 - 如果它是遗留代码,那么该函数中可能会出现各种令人不愉快的情况,从而干扰各种浏览器。我会将其全部注释掉,只保留一两行,然后从那里开始处理。祝你好运

关于asp.net - onClick 事件不会在 Firefox 或 Chrome 中触发,仅在 IE 中触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10386683/

相关文章:

c# - 在同一时间发送短信

c# - 与流程沟通的最佳方法

c# - 在 .NET 语言中存储一个没有限制(无限)的数字

c# - 在 ASP.Net MVC 3 中绘制图表

asp.net 4 自定义请求验证器似乎不起作用

html - 如何将文字放在图片之前?

javascript - 基于下拉值的 Angular 8 ngIf 表达式

html - 列表项文本在图标下不断换行

.net - 如何通过 Key 访问 ListView 子项?

c# - 图像在新搜索中没有改变。 C#(asp.net 项目)