Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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 jquery:在用户单击另一个元素后,我可以返回到相同的单击事件吗?_Javascript_Jquery - Fatal编程技术网

Javascript jquery:在用户单击另一个元素后,我可以返回到相同的单击事件吗?

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"> .

我的要求是交换周围的小部件。用户第一次单击小部件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="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”,它就可以工作了。我要试一试。