Javascript 让调用我的js函数的元素

Javascript 让调用我的js函数的元素,javascript,jquery,Javascript,Jquery,我知道我的问题过去有答案,但我没有词汇来找到答案 我调用如下JavaScript函数: <a href="javascript:showTable('.stats-table');">Voir +</a> $(document).ready(function(){ $('.show-table-link').on('click', function(){ var $usedButton = $(this) showTable('.stats-tabl

我知道我的问题过去有答案,但我没有词汇来找到答案

我调用如下JavaScript函数:

<a href="javascript:showTable('.stats-table');">Voir +</a>
$(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>
function showTable(selec) {
   // some code
}

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


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

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

HTML:


使用jQuery时,可以考虑重构代码:

<a href="javascript:showTable('.stats-table');">Voir +</a>
$(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>
function showTable(selec) {
   // some code
}
$(文档).ready(函数(){
$('.show table link')。在('click',function()上{
变量$usedButton=$(此)
showTable(“.stats表”)
}
})

附加点击处理程序而不是内联写入是一种很好的做法。如果您的函数如下所示,请进一步阅读和。

<a href="javascript:showTable('.stats-table');">Voir +</a>
$(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>
function showTable(selec) {
   // some code
}
您可以使用
this
获得如下所示的单击元素:

function showTable(selec) {
   // some code
   var clickedElem = this;
}

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

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

     //...
}

请参阅。

您可以传递任何值或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>

功能显示表(clss_名称、乐趣id)
{
如果(乐趣id='A1')
{
警报(“执行的第一个功能”);
}
如果(fun_id=='A2')
{
警报(“执行第二个功能”);
}
}
......
......
......

非常好的人可以使用
e.sender();
你不想把
$usedButton
作为
showTable
的第二个参数吗?它不应该是
这个
而不是
$(这个)
?你可以使用
.data()
将选择器存储在JS中而不是硬编码。这样会更好、更简洁。:)您可以添加$usedButton作为参数,具体取决于您将如何使用它。如果希望在显示表后隐藏链接或更改链接的文本,那么最好在单击处理程序中执行此操作。