簡體   English   中英

jQuery-將一個函數內的變量傳遞給另一個函數

[英]jQuery - Passing variable within a function to another function

如果用戶單擊某個按鈕,則我有一些不同的功能可以設置變量。 然后,它將變量傳遞給AJAX函數。...除了不傳遞變量。

這是一個例子:

$('#Button1').on('click', function(e) {
    var add1 = 'yes';
    e.preventdefault();
})
$('#Button2').on('click', function(e) {
    var add1 = 'no';
    e.preventdefault();
})
$('#DoneButton').on('click', function(e) {
    submitLink = 'submit.php'
    dataString = 'add=' + add1;
    $.ajax({
       type: "POST",
       url: submitLink,
       data: dataString,
       cache: false,
       success: function(data) {

           /* My Success Notification Here */
       }
    });
    e.preventdefault();
})

我也嘗試將變量聲明為以下函數:

var add1;

那也不起作用,只是出現為“ undefined”

我該怎么做才能解決此問題?

var放到內部,這樣變量引用就不會在本地作用於click。

var add1;
$('#Button1').on('click', function(e) {
  add1 = 'yes';
  e.preventdefault();
})
$('#Button2').on('click', function(e) {
  add1 = 'no';
  e.preventdefault();
})
$('#DoneButton').on('click', function(e) {
  submitLink = 'submit.php'
  dataString = 'add=' + add1;
  $.ajax({
    type: "POST",
    url: submitLink,
    data: dataString,
    cache: false,
    success: function(data) {

      /* My Success Notification Here */
    }
  });
  e.preventdefault();
});

var add1放入函數中會在該函數中本地聲明。 如果要在外部聲明,則必須添加var add1; 在函數外部,然后刪除函數內部的var ,即`add1 ='no';

您需要在共享作用域中定義變量,以便所有功能都可以訪問它,在這種情況下,這就是全局作用域。 然后在函數的本地范圍內為其分配一個值。

您缺少的簡單部分是,一旦使用var myVar在共享范圍中聲明了它,就無需在分配給它時再次使用var關鍵字,因為這樣做會創建一個僅在本地可訪問的變量。函數的作用域,無論其名稱是否相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM