jQuery在.click之后没有传递变量

时间:2010-12-02 01:30:12

标签: jquery variables click pass-by-value

所以我运行了一个简单的jQuery脚本。它有2个按钮,1个发送数据,1个按钮需要设置第一个发送的变量之一的值。

好的,这里是按钮1的脚本(称为预览):

$('#execute').click(function() {
$('#currentImage').remove();

$.ajax({
   type: "POST",
   url: "effect.php",
   data: { action: $("[name='action']:checked").val(), source: sourceImage, destination: destinationImage, variables: $('#variables').val() },
   success: function(msg){
     $('#workspace').html(msg);
     $("#preview").attr("src", destinationImage+"?timestamp=" + new Date().getTime());
   }
 }); });

这样做会对图像产生影响,而且一切都很美妙。 javascript的第一行包含“sourceImage”变量。

var sourceImage = '20101201161609.jpg';

该变量正确传递给上面的脚本。 第二个按钮(称为“保存状态”)确保我对图像效果感到满意,然后保存图像状态,并继续对该图像进行效果处理。这意味着需要更改源映像,我使用以下脚本:

$('#save_state').click( function() {
var sourceImage = '2010-12-02-35-20-preview.png';
$('#header').html(sourceImage); });

我将$('#header').html(sourceImage);行留下来检查它是否确实被触发了,而且确实是这样,所以这条线不是必需的,但我肯定知道该动作已被触发。

然而,我再次单击“预览”将变量 sourceImage 的值更改回其开始的值,而实际上需要保留此新值。

HOpe有人可以帮助我。

3 个答案:

答案 0 :(得分:4)

通过使用var关键字,您可以在函数中声明一个局部变量,该变量与具有相同名称的全局变量分开。删除var关键字以访问全局变量:

$('#save_state').click( function() {
  sourceImage = '2010-12-02-35-20-preview.png';
  $('#header').html(sourceImage);
});

答案 1 :(得分:0)

答案 2 :(得分:0)