簡體   English   中英

返回變量以在JQuery的另一個函數中使用

[英]Returning a variable to use within another function in JQuery

我正在制作圖片庫,當我單擊按鈕時,可以滾動到下一張圖片。

我還可以選擇“跳轉”到特定圖像。 這一切都很好。

但是,如果我有規律地滾動到圖像3,然后跳到圖像7,則當我單擊下一個按鈕時,就不會像想要的那樣轉到圖像8,而是轉到圖像4。因為有兩個單獨的功能,而且我不知道如何在它們之間傳遞變量。 我知道我可以在兩個函數之外使用全局變量,但這似乎不值得推薦。

這是一個例子:

var i = 0;
// i is a global variable

$("#next_button").click(function(){
   $(".all_images").eq(i).show();
   i++;
});

這將正確地增加我所有的圖像。

$(".thumbnails").click(function(){
    var x = $(this).index();
    $(".all_images:visible").hide();
    $(".all_images").eq(x).show();

i = x;
});

這顯示了相對於我單擊的縮略圖的圖像。

那么,如何在第二個函數中使用第一個函數的'i'變量呢? 這一直使我感到困惑。 使用全局變量似乎更簡單,因此每個函數都可以更改i的值並在必要時使用它。 請賜教。

另外,據我了解,可以將JQuery代碼包裝在常規JavaScript函數中。 但是,當我將JQuery .click包裝在常規JavaScript函數(即my_Function(){.... $(“#something”)。click ....)中時,我的代碼似乎不起作用。

誰能解釋我在做什么錯?

與大多數編程語言一樣,您有兩個選擇:

  1. 使用全局變量(范圍更大),
  2. 通過引用。

但是,您不能真正避免創建某種全局變量(對象或基元),所以我建議您創建一個包含所有程序參數的對象(甚至鍵值)。

為此,您可以使用.data方法將數據分配給任意元素:

setter : 
$('body').data('myvar','value');

getter:
$('body').data('myvar');

參見: http : //api.jquery.com/jQuery.data/

為了通過引用傳遞,您需要傳遞一個對象而不是基元。 有關更多詳細信息,請參見以下鏈接:

暫無
暫無

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

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