我需要获取最后点击元素的id值(clickId)。目前我未定义。也许这是因为在加载文档时元素还没有准备好?如何从函数中检索值?
$(function(){
var clickId;
next();
alert(clickId); //do something with clickId
});
function next(){
$("form").on("click", "div", function(e){
e.preventDefault();
clickId = $(this).attr("id");
});
}
答案 0 :(得分:0)
由于您通过document.location.href
导航到其他页面(或重新加载同一页面),因此您将丢失所有javascript变量数据。
您需要将信息存储在cookie中(查看超级简单js-cookie)或会话数据。
参考文献:
https://msdn.microsoft.com/en-us/library/ms972338.aspx
在您的问题中,clickId会立即显示为未定义,因为它是。将任何内容分配给clickId,初始显示将具有值。
在您的功能中,点击我的值更改,但您没有显示它。一旦您离开(然后返回)页面,值就会丢失,如上所述。您必须将clickId存储在cookie(或会话)中以供以后检索。
$(function(){
var clickId=''; //variable is now defined
next();
alert(clickId); //do something with clickId
});
function next(){
$("form").on("click", "div", function(e){
e.preventDefault();
clickId = $(this).attr("id");
//document.location.href='somePage.aspx?id=' + clickId;
alert(clickID);
});
}
答案 1 :(得分:0)
click事件从html标签下方传播到被点击的元素,然后再传回html。因此,如果Id = 12的div位于没有Id的div中,那么您的脚本将使用Id = undefined进行重定向。
<div><div id="12"></div></div>
在点击事件而不是div选择器
上使用类名选择器$(".div-with-id").on("click", function (){...});
<div><div id="12" class="div-with-id"></div></div>