1

我有下面的功能

function someName(e){
   e.preventDefault();
   $('#someCont').dialog({
     width:200,
     height:auto,
     modal:true
   })
}

我正在使用它

HTML

<a href="#" onclick="someName()">Link Name </a>

但在浏览器中它会引发错误“e 未定义”。有人可以建议我在哪里做错了吗?锚标签可能大于 1

4

3 回答 3

4

通过 jquery 绑定点击函数,而不是将其内联

(function($){
    $(function() {
        function someName(e) {
            e.preventDefault();
        }

        $('a').click(function(e) {
            someName(e);
        });
    });
})(jQuery);

或者在函数中添加参数:

onClick="someName(e)"
于 2013-11-11T10:36:58.047 回答
2

您需要传递事件对象

<a href="#" onclick="someName(event)">Link Name </a>

替代方法可能是如果您不使用内联事件并分配一些 id 或类来锚定并使用它来绑定事件。

HTML

<a href="#" id="a1">Link Name </a>

Javascript

$('#a1').click(function(e){
  e.preventDefault();
   $('#someCont').dialog({
     width:200,
     height:auto,
     modal:true
   })
});
于 2013-11-11T10:37:11.167 回答
0

function someName(e)中,e 是一个事件对象。因此,无论何时调用此函数,都应向窗口事件对象传递一个参数,如下所示:

<a href="#" onclick="someName(event)">Link Name </a> // Here I have passed this object 

否则,你会得到同样的错误'e not defined'

于 2013-11-11T10:42:20.947 回答