javascript - 声明的变量似乎不是全局的

标签 javascript jquery

我首先声明了我的变量——然后是我的 jquery:

var cimg = '';
jQuery(function($) {
    $(".trigger").click(function() {
  var cimg = event.target.id;
  clickedimage();
  loadPopup();
});
});

然后jquery之外的脚本:

function clickedimage()
  {
    var xmargin  = $(cimg).width()/2;
    var ymargin = $(cimg).height()/2;
    $("#popupimage").css('margin-left',-xmargin+'px')
    $("#popupimage").css('margin-top',-ymargin+'px')
    var Clicked = cimg.src;
    $('#popupimage').attr('src',Clicked);
  }

它似乎不想接受 .trigger 单击事件提供的 cimg 值

我做错了什么?

最佳答案

在点击事件中,您执行 var cimg = ...;var 关键字告诉它创建一个新的局部变量,而不是使用来自外部范围的变量。

删除处理程序中的 var

var cimg = '';
jQuery(function($) {
    $(".trigger").click(function(event) {
        cimg = event.target.id;
        clickedimage();
        loadPopup();
    });
});

关于javascript - 声明的变量似乎不是全局的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20750139/

相关文章:

javascript - 检查列表项悬停状态以触发操作 - jQuery

javascript - 将数据加载到我不知道列的数据表中

jquery - 单击外部时如何隐藏 DIV 元素

javascript - 创建一个圆形对象并将它们插入数组

javascript - 将每行多个数据单元格拆分为每行单个数据单元格 - jQuery

javascript - 如何在 Javascript 中基于另一个数组获取多个数组值

javascript - 带有自定义列的 SimpleCart 附加信息

javascript - 在javascript中计算日期之间的差异

javascript - jQuery - Data() 属性返回未定义

javascript - 索引号点击次数