单击处理程序变量仅全局

时间:2019-11-11 15:03:39

标签: javascript jquery

似乎在单击处理程序中,您无法将变量传递给该函数。因此,您必须始终在全局范围内声明它们。我对吗?

例如:

$("#modalCancel,#modalClose").click(function()
{
   if(update == false)
   {
        modalCloseCancel(testcaseId);
   }
   else
   {
        modalCloseCancelUpdate(testcaseId, $("#radio-previous_"+testcaseId).val());
   }
});

这里update和testcaseId是change的变量。我不能将它们作为参数传递给function(),但是我需要在处理程序上方全局声明它们。我认为没有其他方法,因此如果下面有其他功能,则必须小心。

1 个答案:

答案 0 :(得分:0)

您可以使用data-*属性和.data方法轻松地在元素本身上存储变量:

$('.clickme').on('click',function(){
   var update = $(this).data("update");
   console.log(update);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button class="clickme" data-update="true">Click me (true)</button>
<button class="clickme" data-update="false">Click me (false)</button>