全局变量外部功能不起作用

时间:2015-12-31 11:23:15

标签: javascript jquery html function global-variables

我试图在函数外部使用全局变量。我尝试了几乎所有的东西,并且我已经阅读了很多帖子而没有任何进展。我试图修改灯箱插件,并通过数据属性添加标签和社交链接。

这是我的HTML(我如何捕获ID的方法):

<a id="image-1" onclick="window.GetID(this.id)"

这是我的JS:

  var global;
  var tagList;
  var facebook;
  var twitter;
  var gplus;

  window.GetID = function (elem_id) {

    console.log(elem_id);
    global = document.getElementById(elem_id);
    console.log(global);
    tagList = global.getAttribute('data-tags');
    console.log(tagList);
    facebook = global.getAttribute('data-fb');
    console.log(facebook);
    twitter = global.getAttribute('data-tt');
    console.log(twitter);
    gplus = global.getAttribute('data-gplus');
    console.log(gplus);
    return;
  }

  Lightbox.prototype.build = function() {
    var self = this;
    $('<div id="lightboxOverlay" class="lightboxOverlay"></div><div id="lightbox" class="lightbox"><div class="lb-outerContainer"><div class="lb-container"><img class="lb-image" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" /><div class="lb-nav"><a class="lb-prev" href="" ></a><a class="lb-next" href="" ></a></div><div class="lb-loader"><a class="lb-cancel"></a></div></div></div><div class="lb-dataContainer"><div class="lb-data"><div class="lb-details"><ul class="tag-list">' + tagList + '</ul><br/><span class="lb-caption"></span><span class="lb-number"></span></div><div class="lb-closeContainer">' +
        '<ul class="social-list"><li><a href="' + facebook + '"><img src="img/fb_circle_white.png" class="img-responsive"></a></li><li><a href="' + twitter + '"><img src="img/tt_circle_white.png" class="img-responsive"></a></li><li><a href="' + gplus + '"><img src="img/gplus_circle_white.png" class="img-responsive"></a></li></ul><a class="lb-close"></a></div></div></div></div>').appendTo($('body'));

HTML是通过javascript生成的,如上所示。

控制台日志显示正确的数据。当我在函数外部使用变量时,我收到undefined。我只需要从外部函数访问变量来完成它。这是控制台日志的结果。

enter image description here

0 个答案:

没有答案