javascript event.target在mozilla中不工作 函数fun(userID){ var btn=event.target;//错误“event”在mozilla中未定义 警报(btn.id); } 点击这里

javascript event.target在mozilla中不工作 函数fun(userID){ var btn=event.target;//错误“event”在mozilla中未定义 警报(btn.id); } 点击这里,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,我是JavaScript新手,我已经编写了上述代码,这些代码在Google chrome中运行良好,但在Mozilla Firefox中不起作用。有人可以建议如何查找控件触发事件吗?将事件传递给函数: <asp:linkButton id ="target" style =" cursor:pointer" onclick ="fun('1')" >click here </asp:LinkButton> 如果你 使用关键字this传递按钮,则无需执行事件 functi

我是JavaScript新手,我已经编写了上述代码,这些代码在Google chrome中运行良好,但在Mozilla Firefox中不起作用。有人可以建议如何查找控件触发事件吗?

将事件传递给函数:

<asp:linkButton id ="target" style =" cursor:pointer" onclick ="fun('1')" >click here </asp:LinkButton>
如果你 使用关键字
this
传递按钮,则无需执行事件

function fun(userID)
{
    var e = event || window.event;
    var btn = e.target; 
    alert(btn.id);
}

event
在firefox中未定义,因为firefox没有此属性,您可以将事件作为参数提供给事件处理程序函数

但是,您的代码可以在Chrome和IE中正常工作


此外,我还将使用类似于
的脚本类型,而不仅仅是

来访问单击处理程序中的
事件,将其附加到jQuery中,而不是HTML中

HTML:


许多(包括我自己)认为这是连接事件处理程序的“适当”方式。有几个优点,对事件对象的访问只是其中之一。

使用参数[0]。target而不是event.target。大多数浏览器支持事件全局变量,但firefox不支持。参数[0]包含所有相同的属性和函数,但受所有浏览器支持


作为旁注:参数数组中的索引可以由您自己的代码更改。在我当前的项目中,由于某种原因,参数[0]包含我的所有控制器函数,而全局事件方法和属性包含在参数[1]中。不完全确定这是为什么,但您可能需要对arguments数组进行一些调试,以查看它包含哪些值,并相应地进行调整。但是,通常情况下,参数[0]应该起作用。

函数如何调用?Firefox需要事件作为参数,第一个参数是完美的,通过添加
e=event | | window.event;var target=e.target | | e.src元素
。两者加上ie的e.src元素是更好的组合,或者通过
而不是第一个,第二个在firefox中仍然存在问题,事件不确定如何向函数传递多个参数。我必须使用split()函数吗???是的,您可以将数据压缩成一个
数据值
,然后用
.split()
将其分离出来。或者,您可以在HTML中设置任意数量的
数据xxx
数据yyy
,属性-使用
$(this).data('xxx')
$(this).data('yyy')
等在jQuery中单独访问它们。
<asp:linkButton id ="target" style =" cursor:pointer" onclick ="fun(event, '1')" >click here </asp:LinkButton>

function fun(event, userID)
{
    event= event|| window.event;
    var btn = event.target; 
    alert(btn.id);
}
function fun(userID)
{
    var e = event || window.event;
    var btn = e.target; 
    alert(btn.id);
}
...onclick="fun(this,1)"

function fun(but, userID) { 
  var butID=but.id

}
<a id ="target" style ="cursor:pointer" data-value="1">click here</a>
$(function() {
    $("#target").on('click', function(event) {
        event.preventDefault();
        var btn = this;
        var value = $(this).data('value');
        alert(btn.id + ', ' + value);
    });
});