我先声明了我的变量 - 然后让我的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值
我在这里做错了什么?
答案 0 :(得分:5)
在点击事件中,您执行var cimg = ...;
。 var
关键字告诉它创建一个新的局部变量,而不是使用外部范围中的变量。
删除处理程序内的var
。
var cimg = '';
jQuery(function($) {
$(".trigger").click(function(event) {
cimg = event.target.id;
clickedimage();
loadPopup();
});
});
答案 1 :(得分:1)
重新声明var cimg
会导致它成为函数范围内的局部变量。此外,您还没有提供event
,这也会导致错误(某些浏览器允许引用window.event)。
jQuery(function($) {
$(".trigger").click(function(event) {
cimg = event.target.id;
clickedimage();
loadPopup();
});
});