事件阻止默认

时间:2013-11-11 10:35:16

标签: javascript jquery

我有以下功能

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

我正在使用它

HTML

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

但在浏览器中会抛出错误“e未定义”。 任何人都可以建议我做错了吗?锚标记可能超过1

3 个答案:

答案 0 :(得分:4)

通过jquery绑定点击功能,而不是将其置于内联

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

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

或在函数中添加参数:

onClick="someName(e)"

答案 1 :(得分: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
   })
});

答案 2 :(得分:0)

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

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

否则,您将收到相同的错误'e not defined'