Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击按钮时存储变量,以便在触发ajaxComplete事件时使用_Javascript_Jquery_Ajax_Javascript Events_Event Handling - Fatal编程技术网

Javascript 单击按钮时存储变量,以便在触发ajaxComplete事件时使用

Javascript 单击按钮时存储变量,以便在触发ajaxComplete事件时使用,javascript,jquery,ajax,javascript-events,event-handling,Javascript,Jquery,Ajax,Javascript Events,Event Handling,我在同一个类的页面上有4个按钮。当单击这些按钮中的任何一个时,都会触发一个Ajax事件,我使用ajaxComplete监听该事件。问题是,如果我一个接一个地单击一个按钮,分配给第一个按钮的变量似乎会覆盖第二个按钮,因此第二个按钮的操作不会发生 我将特定于元素的名称空间附加到单独的ajaxComplete处理程序中,但这并没有解决问题。我可能缺少或没有使用一些明显的东西 在我看来,主要的问题是,我根据上次单击的按钮存储ID,因此当事件被触发时,它影响了错误的元素。(分配给$sheetBlock的最

我在同一个类的页面上有4个按钮。当单击这些按钮中的任何一个时,都会触发一个Ajax事件,我使用ajaxComplete监听该事件。问题是,如果我一个接一个地单击一个按钮,分配给第一个按钮的变量似乎会覆盖第二个按钮,因此第二个按钮的操作不会发生

我将特定于元素的名称空间附加到单独的ajaxComplete处理程序中,但这并没有解决问题。我可能缺少或没有使用一些明显的东西

在我看来,主要的问题是,我根据上次单击的按钮存储ID,因此当事件被触发时,它影响了错误的元素。(分配给
$sheetBlock
的最新变量)。我需要在单击事件对应的按钮时存储这些变量

需要注意的是,我不能向html元素添加任何额外的属性,但是,每个受影响的按钮和元素都有自己的ID

我认为将
$flipyfunc
函数存储在一个var中,并在按下每个按钮时运行,这样我就可以在单击每个按钮时将其ID存储在一起使用的每个ajax事件旁边。我该怎么做

var$id=null;
var$laddaButtons=[];
var$it=null;
var$results=[];
var$sheetBlock=[];
var runOnAjax=函数(按钮,id){
$(按钮).off('mousedown.button');
$sheetBlock[id]=$(“#”+button.parentNode.parentNode.parentNode.parentNode.parentNode.id);
};
var$flipyfunc=函数($id){
$sheetBlock[$id].flippy({
//选择权
});
};
$('.ladda button').on('mousedown.this',函数(e){
$id=this.id;
$it=这个;
runOnAjax($it,$id);
$(文档).on(“ajaxComplete.”+id,函数(e){
$(document).off(“ajaxComplete.”+$id);
$flippyFunc($id);
});
});

我能够将所需的变量从ajaxSend事件的设置对象传递到相应的ajaxComplete事件的设置对象。这很简单:

$(文档).on(“ajaxSend”)函数(e、xhr、设置){
settings.buttonID=$id;
}
然后在触发相应的ajaxComplete事件时访问buttonID变量:

$(document).on(“ajaxComplete”)函数(e、xhr、设置){
$id=settings.buttonID;
//现在我可以像触发ajaxSend事件一样使用“$id”。
}