将值从一个onclick函数传递给另一个onclick函数

时间:2013-10-29 12:42:24

标签: jquery html

我想将一个变量从一次点击传递到另一个点击功能。

不确定是否可行。我之前做过一些研究,但找不到合适的解决方案。

$('.clickme').click(function () {
    var whichid = $(this).attr("id");
    alert(whichid);
});

$('#button').click(function () {
    //get the clicked id value from previous click function
});

这是我的小提琴

http://jsfiddle.net/squidraj/g7xNv/

5 个答案:

答案 0 :(得分:2)

您仍然可以在周围$().ready()电话的范围内,所以您可以毫无问题地执行此操作:

var whichid = 0;

$('.clickme').click(function () {
    whichid = $(this).attr("id");
});

$('#button').click(function () {
    alert(whichid);
});

答案 1 :(得分:2)

您可以使用.data()来存储点击的元素

$('.clickme').click (function() {
    var whichid = $(this).attr("id");
    $('#button').data('whichid', whichid);
    alert(whichid);
});

$('#button').click (function() {
    alert( $('#button').data('whichid'));
});

DEMO

答案 2 :(得分:1)

最简单的方法是使用全局变量:

$('.clickme').click(function () {
    var whichid = $(this).attr("id");
    window["whichid"] = whichid;
    alert(whichid);
});

$('#button').click(function () {
    alert(window["whichid"] || "not clicked yet");
});

Updated fiddle

答案 3 :(得分:0)

您可以定义全局变量,并将值设置为此变量。 例如,你可以这样做:

var globalVar = null;

$('.clickme').click(function () {
    var whichid = $(this).attr("id");
    globalVar = whichid
    console.log(whichid); // console.log() is more better than alert to debug
});



$('#button').click(function () {
        //get the clicked id value from previous click function
        console.log(globalVar);
   });

答案 4 :(得分:0)

或者,您可以添加隐藏输入字段来存储最近点击过的ID的值:

作为

HTML:

<input type="hidden" name="last_clicked_id" id="last_clicked_id">

现在将最后点击的ID保存到隐藏元素

JS:

$('.clickme').click(function () {
    var whichid = $(this).attr("id");
    alert(whichid);
    $('#last_clicked_id').val(whichid);
});


$('#button').click(function () {
    //get the clicked id value from previous click function
    var last_clicked = $('#last_clicked_id').val();
    alert('last_clicked = '+last_clicked);
});