可以从中获取布尔值吗?
$(".svgobjects").on("mousedown", function(){
console.log("clicked");
});
我想检查用户是否在其中一个div上使用“.svgobjects”类进行了操作。
修改
为什么这段代码总是返回“false”?
var ifclicked=false;
$(".svgobjects").on("mousedown", function(){
console.log("clicked");
ifclicked = true;
});
console.log("ifclicked "+ifclicked);
答案 0 :(得分:4)
将布尔值存储到某些var:
var clicked = false;
$(".svgobjects").on("mousedown", function(){
clicked = true;
});
答案 1 :(得分:4)
您只需使用变量
var IsSvgobjectsMousedown = false;
$(".svgobjects").on("mousedown", function(){
IsSvgobjectsMousedown = true;
console.log("clicked");
});
答案 2 :(得分:1)
另一种可能性是使用data()
存储与指定元素关联的任意数据。返回已设置的值。
$(".svgobjects").on("mousedown", function(){
$(".svgobjects").data("clicked", "yes");
});
alert($(".example").data("clicked"));
对于特定对象
$(".svgobjects").on("mousedown", function(){
$(this).data("clicked", "yes");
});
使用data()
,您可以在点击时将一些数据存储到element
。并在需要时检索该信息:)
更新问题后编辑:
这意味着您在回调之前记录variable
,这是在记录完成后更新变量。
$(".example").append("<input class='svgobjects'</input>")
var ifclicked=false;
$(".svgobjects").on("mousedown", function(){
console.log("clicked");
ifclicked = true;
alert(ifclicked);
});
console.log("ifclicked "+ifclicked);
答案 3 :(得分:1)
之所以没有按预期工作,是因为您编写的代码不是以线性方式执行的。 '$(“。svgobjects”)。on(“mousedown”,...'block是一个带有回调的事件监听器,只有在事件发生时才会触发。
如果您在单击某些内容时正在查看执行任务,可能将其包装在函数中并在mousedown回调中调用该函数。
答案 4 :(得分:0)
你总是会收到错误的方式,你的代码顺序不正确
var ifclicked=false;
$(".svgobjects").on("mousedown", function(){
console.log("clicked");
ifclicked = true;
console.log("ifclicked "+ifclicked);
});
现在它将返回true,你之前的序列不正确
答案 5 :(得分:0)
您应该将最后一个代码移动到回调中,如下所示
var ifclicked=false;
$(".svgobjects").on("mousedown", function(){
console.log("clicked");
ifclicked = true;
console.log("ifclicked: "+ifclicked);
});