jquery:在用户点击另一个元素后,我可以返回到同一个点击事件吗
jquery : Can I return back to same click event after user clicks on another element?
我的需求是交换到周围的小部件。用户第一次点击小部件A标题时,我可以将本地信息/数据存储在某个地方(即"用户点击的小部件Id=A"),现在我等待用户点击另一个小部件标题widget B。
一旦控制权回到原来的功能,现在我有了关于Widget 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>
几周前,我在stackoverflow上看到了一个jquery代码,它将控制权发送回之前的点击事件,但从那时起,我一直在搜索它,但找不到任何位置。
类似
$(..).on("click", function() {
// some more code
$(..).XXX("xxx", function(){
//on second click code flows directly here...
});
});
"返回到以前的点击事件"并不容易/可能-相反,定义一个函数来检查是否两个事件都发生了,类似于:
var widgetAclicked = false;
var widgetBclicked = false;
$("#WidgetA").click(function() { widgetAclicked = true; process(); }
$("#WidgetB").click(function() { widgetBclicked = true; process(); }
function process() {
if (!widgetAclicked) return;
if (!widgetBclicked) return;
// process when both clicked
}
如果您不想为此使用var
,您可以将其存储在小部件本身上,例如:
$("#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();
});
那么你的CCD_ 2可以检查哪些被点击了,以进行它需要的任何邪恶处理。
您可以将单击的元素Id存储在一个数组中,您将知道单击了哪些元素:
$(document).ready(function(){
var clickedElementsIds = [];
$('#widget header').on('click' function(event){
var clickedElementId = event.currentTarget.id;
clickedElementsIds.push(clickedElementId);
});
});
当你在数组中有id时,你可以对它们为所欲为。
相关文章:
- 变量dos'即使我可以返回更新后的值,也不会改变
- 我可以获得用Ajax调用的函数的返回代码吗
- 当数组中的某个函数没有返回promise时,我可以使用$q.all吗
- 我可以't返回我的json对象
- 我可以在 jquery 中对函数循环使用相同的返回值吗?
- 为什么我可以在ServiceNow中访问示例脚本化Web服务(订购黑莓)并返回静态变量,但它没有订购黑莓
- Angular $http.json 承诺返回错误,尽管我可以看到响应
- 我可以将字段保留在填充的表单中,即使我移动到其他页面然后返回
- Backbone.js model.get()返回'未定义'尽管我可以在console.log中看到这些
- 我可以只返回状态对象的一部分而不是整个状态对象的新副本吗
- jquery:在用户点击另一个元素后,我可以返回到同一个点击事件吗
- 我可以在Ajax中为返回数据设置class或Id属性吗
- 我可以从ajax返回javascript应该做什么吗
- 我可以用PHP返回JQueryAJAX请求的输出状态吗
- 我可以从RadWindow的Close处理程序获得返回的值吗
- 什么时候我可以省略返回在javascript
- 我可以检测有效的JSONP返回吗?
- 我可以在if语句中返回后返回吗?Javascript
- 谷歌地图地理编码器如何我可以返回值在新的Google .maps. latlng
- 我可以通过document.execCommand(' save As',…)保存文本吗?我总是返回一些