如何在单独的函数中获取此变量?(jQuery)
How do I grab this variable in a separate function? (jQuery)
我试图在最后一个函数中使用TsearchResultID,但不知道如何访问它…在这个函数中($(document).on('click','.slideYThumbnail',function(event){)
function QueryGetta0() {
var TTsearchQuery = 'x';
return TTsearchQuery;
}
function QueryGetta1() {
return $.get(
"https://www.googleapis.com/youtube/v3/search",{
part: 'snippet',
maxResults: 1,
q: YTSearchQueryText,
type: 'video',
key: ''}
);
}
$(document).on('click', '.lister ul span', function(event) {
QueryGetta1()
.done(function(data) {
var TsearchResultID = data.items[0].id.videoId;
var target = '<div class="slideYThumbnail"><img class="slideYThumbnailInside" src="http://img.youtube.com/vi/' + TsearchResultID + '/0.jpg"></img></div>';
});
});
$(document).on('click', '.slideYThumbnail', function(event) {
alert(TsearchResultID);
});
您可以在全局范围外创建一个对象来管理它:
var obj = {
TsearchResultID : "" // <---declare it here.
};
function QueryGetta0() {
// other code as is.
}
function QueryGetta1() {
// other code as is.
}
$(document).on('click', '.lister ul span', function(event) {
QueryGetta1()
.done(function(data) {
obj.TsearchResultID = data.items[0].id.videoId; // <---put value here.
var target = '<div class="slideYThumbnail"><img class="slideYThumbnailInside" src="http://img.youtube.com/vi/' + TsearchResultID + '/0.jpg"></img></div>';
});
});
$(document).on('click', '.slideYThumbnail', function(event) {
alert(obj.TsearchResultID); // now access it here.
});
如果您想在函数之间共享变量,您必须在函数之外定义它们。这通常涉及Global Variables
,但污染全球范围不是一个好的做法。
另一种选择是,将所有事件绑定封装在函数registerEvents()
中,如果在事件处理程序之外定义变量,则可以跨处理程序访问它们,但它仍然是函数的一部分,因此可以防止污染。这也有助于将所有绑定保持在一起,使调试更加容易。
示例
function registerEvents() {
var sharableVar = null;
$("#btnInit").on("click", function() {
sharableVar = Math.floor(Math.random() * 10);
});
$("#btnNotify").on("click", function() {
console.log(sharableVar);
})
}
registerEvents()
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<button id="btnInit">Initialize</button>
<button id="btnNotify">Notify</button>
尝试使用在全局范围中声明的数组。
var TsearchResultIDArray = []; //declaration of array
$(document).on('click', '.lister ul span', function(event) {
QueryGetta1()
.done(function(data) {
TsearchResultIDArray.push = data.items[0].id.videoId;//push the value to the array
var target = '<div class="slideYThumbnail"><img class="slideYThumbnailInside" src="http://img.youtube.com/vi/' + TsearchResultID + '/0.jpg"></img></div>';
});
});
$(document).on('click', '.slideYThumbnail', function(event) {
alert(TsearchResultIDArray[0]); // access the first element of the array.
});
或
使用会话存储设置/获取值。
$(document).on('click', '.lister ul span', function(event) {
QueryGetta1()
.done(function(data) {
sessionStorage.setItem('TsearchResultID',data.items[0].id.videoId); //set the value in session
var target = '<div class="slideYThumbnail"><img class="slideYThumbnailInside" src="http://img.youtube.com/vi/' + TsearchResultID + '/0.jpg"></img></div>';
});
});
$(document).on('click', '.slideYThumbnail', function(event) {
alert(sessionStorage.getItem('TsearchResultID')); //get the value from session
});
相关文章:
- 值未传递给变量(JQuery、Javascript)
- 附加要使用的变量jQuery验证插件
- 按钮变量范围 - 如何更新父范围中的变量?jQuery.
- grunt-contrib-jasmine ReferenceError: 找不到变量: jQuery.
- 未定义的变量 jQuery 对象
- 调用变量 jQuery 函数
- 访问正在改变函数内部的变量(jQuery)
- 在变量jquery日期选择器中获取今天的日期和所选日期
- 如何序列化存储在变量 jQuery 中的表单
- 如何在单独的函数中获取此变量?(jQuery)
- 可以't在嵌套函数中使用javascript变量(jquery砖石插件)
- 将.attr()添加到变量Jquery中
- 将.change函数中变量的值传递并更新到全局变量Jquery
- 将ajax变量Jquery到php中
- 用两个双引号和加号包围javascript变量jquery $.post
- 如何将html结构存储在变量jquery中
- 如何通过名称空间变量进入点击函数参数变量?jQuery
- 检查if条件,if语句被赋值为字符串变量- jquery|| javascript
- 从on()函数返回变量- jquery
- 创建一个变量,在每个循环中使用一个变量- jQuery