检索最后单击元素的值

时间:2015-07-28 15:03:13

标签: javascript jquery

我需要获取最后点击元素的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");       

    });
}

2 个答案:

答案 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>