有调用我的js功能的元素

时间:2014-07-29 09:13:03

标签: javascript jquery

我知道我的问题在过去已有答案,但我没有找到这个词汇。

我调用这样的JavaScript函数:

<a href="javascript:showTable('.stats-table');">Voir +</a>

此函数会更改元素.stats-table的状态,但我想知道单击了哪个按钮来调用此函数?

更好:我可以拥有此按钮的jQuery对象吗?

5 个答案:

答案 0 :(得分:1)

尝试传递this引用以了解单击了哪个按钮,

HTML:

<a href="javascript:showTable('.stats-table',this);">Voir +</a>

JS:

function showTable(selec,elem){
 var currentElem = $(elem); //Clicked element
}

答案 1 :(得分:0)

当您使用jQuery时,您可能会考虑重构您的代码:

$(document).ready(function(){
  $('.show-table-link').on('click', function(){
    var $usedButton = $(this)
    showTable('.stats-table')
  }
})


<a href="#show-table" class="show-table-link">Voir +</a>

附加点击处理程序而不是内联编写它是一种很好的做法。进一步阅读document.readyjQuery event basics

答案 2 :(得分:0)

如果你的功能是这样的:

function showTable(selec) {
   // some code
}

您可以使用this

获取这样的点击元素
function showTable(selec) {
   // some code
   var clickedElem = this;
}

答案 3 :(得分:0)

如果您不想更改函数的签名以及调用它的方式(正如其他人建议的那样),您可以使用全局window.event来标识所单击的元素:

function showTable(selector)
{
     var clickedElement = window.event.target;

     //...
}

请参阅MDN

答案 4 :(得分:0)

您可以传递任何值或ID,并且您可以识别该功能

<script type="text/javascript">
    function showTable(clss_name,fun_id)
    {
     if(fun_id=='A1')
     {
      alert("First function Executed");
     }
     if(fun_id=='A2')
     {
      alert("Second Function is executed");
     }
    }
    </script>
    ......
    ......
    ......

    <a href="javascript:showTable('.stats-table',this.id);" id="A1">Voir +</a>
    <a href="javascript:showTable('.stats-table',this.id);" id="A2">Voir2 +</a>