将全局变量分配给以下 Javascript

Posted

技术标签:

【中文标题】将全局变量分配给以下 Javascript【英文标题】:Assigning global variable to following Javascript 【发布时间】:2016-06-25 11:37:28 【问题描述】:

我们怎样才能使 var modal = $("#modal");全局变量?

我们在下面的代码中有模态变量,我们需要它工作,它目前没有, var content = "你好" + name + ", 你已经签了" + modal + " 到XYZ";

非常感谢!

$(document).ready(function() 
$('#calendar').fullCalendar(
  header: 
    left: '',
    center: 'title',
    right: 'prev,next today'
  ,
  defaultDate: '2016-03-15',
  events: [

    
      title: 'Event',
      start: '2016-03-26T11:00:00',
      end: '2016-03-26T12:00:00',
    ,
  ],
  eventClick: function(event) 
    console.log(event)
      // alert(event.start.format('MMMM Do YYYY'))
    start = event.start.format('MMMM Do YYYY'),
      end = event.end.format('MMMM Do YYYY'),
      html = '<p>Starts: ' + start + '<p>';
    html += '<p>Ends: ' + end + '<p>';
    var modal = $("#modal");
    modal.find(".modal-title").html(event.title);
    modal.find('.modal-body').html(html)
    modal.modal();
  
)



 $("#contact_form").submit(function() 
var email = $("#email").val(); // get email field value
var name = $("#name").val(); // get name field value
var msg = $("#msg").val(); // get message field value
var content = "Hello " + name + ", You have signed " + modal + " up to XYZ";
$.ajax(
    type: "POST",
    url: "https://mandrillapp.com/api/1.0/messages/send.json",
    data: 
      'key': 'api',
      'message': 
        'from_email': "email",
        'text': "Hello ",
        'from_name': "name",
        'headers': 
          'Reply-To': "email"
        ,
        'subject': 'Confirmation - Sign Up',
        'text': content,
        'to': [
          'email': email,
          'name': name,
          'type': 'to'
        ]

      
    

  )
  .done(function(response) 
    alert('You have been signed up. Thank you!'); // show success message
    $("#name").val(''); // reset field after successful submission
    $("#email").val(''); // reset field after successful submission
    $("#msg").val(''); // reset field after successful submission

  )
  .fail(function(response) 
    alert('Error sending message.');
  );
return false; // prevent page refresh
 );
);

【问题讨论】:

将它放在 $(document).ready(...) 之外应该可以工作。由于 javascript 使用hoisting,所以它在窗口中的位置无关紧要(只要它在正确的范围内。) 【参考方案1】:

使价值全球化的简单解决方案是:

window.modal = "Value";

如果您实际上并不需要它,而只是想以某种方式存储它,多个函数都可以访问它,您可以在函数范围内创建它,例如:

(function()
    var modal = "value";

    $.ajax(
        success: function() 
             console.log(modal);
        
    )
)()

【讨论】:

以上是关于将全局变量分配给以下 Javascript的主要内容,如果未能解决你的问题,请参考以下文章

将行的值分配给全局变量

如何将 promise 对象中返回的 JSON 对象分配给全局变量?

如何将 Cloud Firestore 中的数据分配给 Android 的全局变量 [重复]

将纬度和经度分配为全局使用的变量[重复]

在Javascript中将多个变量分配给相同的值?

在Javascript中将多个变量分配给相同的值