1

onclick および href 関数を使用したアンカー リンクがあります。以下のコードのように

$("div.actions").append('<a id="excelExport" onClick="callajax();" class="actionButton" alt="Export to Excel" title="Export to Excel" href="partexport" ></a>')

function callajax() {
     jQuery.ajax({
     url : '<s:url action="partexport"/>',
     data : "fters.productNbr" : $("#productsTextArea1").val()} });

     }

アンカー リンクをクリックしても、Callajax はまったく呼び出しを行いません。

4

3 に答える 3

2

ハンドラーが最初clickに起動します。クリックの処理方法に応じて、href リンク アクションを実行するかどうかを制御できます。

両方を実行できます。つまり、クリック ハンドラーとリンク アクションを実行できます。あなたがする必要があるのは、クリックハンドラーからreturn false呼び出したり、呼び出したりすることだけではありません。event.preventDefault()

于 2013-07-15T17:26:11.897 に答える
1

ここでいくつかのことが行われています。

  1. すでに jquery を使用している場合は、jquery を使用してハンドラーをアタッチすることをお勧めします。これが挿入されたリンクであることを考えると、注意が必要ですが、私の例ではその方法を説明しています。
  2. セミコロンは onClick ハンドラの引用符の外にあります
  3. アンカー タグのデフォルトの動作を回避するには、すべて e.preventDefault() を使用します。実際の場所にリダイレクトしないので、これはあなたの場合ほど大したことではありませんが、「デフォルトの動作をしないでください」と明示的に言わないと、奇妙な動作が見られる場合があります

http://jsfiddle.net/g30rg3/u5k95/3/

$(document).ready(function(){
    $("div.actions").append('<a id="excelExport" class="actionButton" alt="Export to Excel" title="Export to Excel" href="http://www.stackoverflow.com">click me</a>');
    $('div.actions').on('click.mylink', '#excelExport',function(e){
        e.preventDefault();
        callajax();
    });

});

function callajax() {
    alert('clicked');

}
于 2013-07-15T18:14:05.307 に答える
0

クリック イベントが最初に実行され、結果に応じて href が実行されます。たとえばfalse、クリック イベントから戻ると、href が実行されなくなります。

于 2013-07-15T17:26:41.157 に答える