Javascript jquery:在用户单击另一个元素后,我可以返回到相同的单击事件吗?
我的要求是交换周围的小部件。用户第一次单击小部件A标题时,我可以将本地信息/数据存储在某个地方(即“用户单击widgetId=A”),现在我等待用户单击另一个小部件标题小部件B 一旦控制传递回原来的功能,现在我有关于小部件B id的信息,我可以交换Javascript jquery:在用户单击另一个元素后,我可以返回到相同的单击事件吗?,javascript,jquery,Javascript,Jquery,我的要求是交换周围的小部件。用户第一次单击小部件A标题时,我可以将本地信息/数据存储在某个地方(即“用户单击widgetId=A”),现在我等待用户单击另一个小部件标题小部件B 一旦控制传递回原来的功能,现在我有关于小部件B id的信息,我可以交换 <div> <div class="widget header" id="WidgetA"> .... </div> <div class="widget header" id="WidgetC"> .
<div>
<div class="widget header" id="WidgetA"> .... </div>
<div class="widget header" id="WidgetC"> .... </div>
<div class="widget header" id="WidgetB"> .... </div>
</div>
“返回到先前的单击事件”并不容易/可能,相反,定义一个函数来检查两个事件是否都发生过,例如:
如果您不想为此使用var
s,您可以存储在小部件本身上,例如:
$("#WidgetA,#WidgetB").click(function {
$(this).data("beenclicked", true);
process();
});
function process() {
if ($("#WidgetA").data("beenclicked") != true
|| $("#WidgetB").data("beenclicked") != true)
return;
// process
}
这也使得添加/删除小部件变得更容易,而不需要任何额外的代码:
// apply to all widgets
$(".widget").click(function {
$(this).data("beenclicked", true);
process();
});
然后,您的process()
可以检查哪些已被单击,以获得它所需的任何恶意处理。不容易/不可能“返回到先前的单击事件”-相反,定义一个检查两个事件是否都已发生的函数,例如:
如果您不想为此使用var
s,您可以存储在小部件本身上,例如:
$("#WidgetA,#WidgetB").click(function {
$(this).data("beenclicked", true);
process();
});
function process() {
if ($("#WidgetA").data("beenclicked") != true
|| $("#WidgetB").data("beenclicked") != true)
return;
// process
}
这也使得添加/删除小部件变得更容易,而不需要任何额外的代码:
// apply to all widgets
$(".widget").click(function {
$(this).data("beenclicked", true);
process();
});
然后,您的
process()
可以检查哪些元素已被单击,以进行它所需的任何恶意处理。您可以将单击的元素ID存储在一个数组中,这样您就可以知道单击了哪些元素:
$(document).ready(function(){
var clickedElementsIds = [];
$('#widget header').on('click' function(event){
var clickedElementId = event.currentTarget.id;
clickedElementsIds.push(clickedElementId);
});
});
当您在数组中有ID时,您可以对其执行任何操作。您可以将单击的元素ID存储在一个数组中,这样您就可以知道单击了哪些元素:
$(document).ready(function(){
var clickedElementsIds = [];
$('#widget header').on('click' function(event){
var clickedElementId = event.currentTarget.id;
clickedElementsIds.push(clickedElementId);
});
});
当你在数组中有了ID,你就可以随心所欲地使用它们。我有n个小部件,用户可以一个接一个地点击其中的任意两个。我想如果我检查前面的点击,交换两个小部件并删除“beenclicked”,它就可以工作了。我会尝试一下。我有n个小部件,用户可以一个接一个地点击任意两个。我想如果我检查前面的点击,交换两个小部件并删除“beenclicked”,它就可以工作了。我要试一试。