锚链接功能 - onclick和href

时间:2013-07-15 17:24:46

标签: javascript jquery

我有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根本没有打电话。

3 个答案:

答案 0 :(得分:2)

click处理程序将首先触发。根据处理点击的方式,您可以控制href链接操作是否通过。

您可以同时执行这两项操作 - 即让您的点击处理程序和链接操作完成。您只需要return false或从点击处理程序中调用event.preventDefault()

答案 1 :(得分:1)

这里有一些可以玩的东西。

  1. 如果你已经使用jquery,最好使用jquery来附加处理程序。鉴于这是一个注入链接,它很棘手,但我的例子涵盖了如何做到这一点。
  2. 您的分号位于onClick处理程序的引号之外
  3. 要避免锚标记的默认行为,请执行所有e.preventDefault()。这个问题在你的情况下没有那么重要,因为你没有重定向到一个实际的位置,但如果你没有明确说'不要做默认行为',你可能会看到奇怪的行为。
  4. 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');
    
    }
    

答案 2 :(得分:0)

首先执行click事件,然后根据结果执行href。例如,从click事件返回false将阻止href被执行。