Javascript 在jQuery中使用全局变量,但不运行
我有一个密码Javascript 在jQuery中使用全局变量,但不运行,javascript,jquery,Javascript,Jquery,我有一个密码 function myFunction(PostID){ // Get Image Src ImgSrc = $('#' + PostID + ' .myImg').attr('src'); // Set Output var PostImgOutput = $('.inf-shf-pr .Post-img') ; //Put a src in out put PostImgOutput.attr({ 'src': Img
function myFunction(PostID){
// Get Image Src
ImgSrc = $('#' + PostID + ' .myImg').attr('src');
// Set Output
var PostImgOutput = $('.inf-shf-pr .Post-img') ;
//Put a src in out put
PostImgOutput.attr({ 'src': ImgSrc });
}
运行,但如果我使用此选项:
var PostImgOutput = $('.inf-shf-pr .Post-img') ;
作为全局变量,我的代码不起作用。有什么问题
// Set Output
var PostImgOutput = $('.inf-shf-pr .Post-img') ;
function myFunction(PostID) {
// Get Image Src
ImgSrc = $('#' + PostID + ' .myImg').attr('src');
//Put a src in out put
PostImgOutput.attr({ 'src': ImgSrc });
}
这是因为在全局定义元素时不会加载它们。当dom就绪时,需要包装该代码
var PostImgOutput="";
$(function(){
// Set Output
PostImgOutput = $('.inf-shf-pr .Post-img') ;
});
全局变量
positmgoutput
必须位于document.ready事件处理程序中。这是因为当您引用$('.inf shf pr.Post img')时,dom可能还没有准备好代码>
就先前的条件而言:
由于函数是在稍后的某个时间调用的,所以DOM可能已经准备好了,这就是它工作正常的原因
但是,当您将其放置在函数外部时,当浏览器遇到该语句时,将执行该语句。因此,此时DOM可能还没有准备好。因此,在document.ready
上为PostImgOutput
赋值,您是否添加了var PostImgOutput=$('.inf shf pr.Post img')代码>内部文档。准备好了吗?
// Set Output
var PostImgOutput;
$(function() {
PostImgOutput = $('.inf-shf-pr .Post-img');
});
function myFunction(PostID){
// Get Image Src
ImgSrc = $('#'+PostID + ' .myImg').attr('src');
//Put a src in out put
PostImgOutput.attr({'src': ImgSrc });
}