我有jquery点击回调,这从DOM获取一些数据,我需要在另一个点击回调中使用这些数据
$('#test').click(function () {
var some_var = $(this).attr('title').split('-');
});
在另一次点击中我需要使用它
$('#test2').click(function () {
init(data_from_test);
});
如何从一次点击返回数据?
谢谢
答案 0 :(得分:1)
(function() {
var some_var;
$('#test').click(function () {
some_var = $(this).attr('title').split('-');
});
$('#test2').click(function () {
if( some_var) init(some_var);
});
})();
答案 1 :(得分:0)
您必须将数据存储在第一次单击和下一次单击都可访问的变量中。
我通常会有一个命名空间,所以我会做
App.currentClickContext = {}
然后在第一次点击
App.currentClickContext.data = xxxx
然后在第二个我可以访问该数据
答案 2 :(得分:0)
您可以将数据保存在某个元素的jQuery data
对象中。
$('#test').click(function () {
var some_var = $(this).attr('title').split('-');
$(document).data("someData",some_var);
});
$('#test2').click(function () {
init($(document).data("someData"));
});
或者您可以使用全局变量(或单个全局变量的属性,或更高范围内的变量Esailija和jAndy提及)。
var globalData = null;
$('#test').click(function () {
globalData = $(this).attr('title').split('-');
});
$('#test2').click(function () {
if(globalData) {
init(globalData);
{
});
答案 3 :(得分:0)
最简单的方法是在更高的范围内使用(自由)变量。例如:
(function() {
var some_var;
$('#test').click(function () {
var some_var = $(this).attr('title').split('-');
});
$('#test2').click(function () {
init(some_var);
});
}());
还有其他方法可以解决此问题,例如
datasets
entrys namespace object