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 に答える