2017-05-28 55 views
0

如何保存data [i]值以便在location.href中使用它?jQuery商店價值.append

$('<td />', {text: data[i]}), 
     $('<td />').append(
     $("<i [...] ></i>").click(function(){ 
      var sure = confirm("text"); 
      if (sure) 
      location.href ="privateServices/deleteZone.php?zone="+data[i]; 
     }) 

這是我的Javascript代碼內的cicle和數據[i]是明顯不確定的,一旦我點擊圖標,所以我需要存儲其不同的價值爲每一個鏈接圖標

+0

將'var data;'添加到外部作用域中的所有其他位置之前。 –

+0

@JulienKlepatch'click'函數使用索引'i',然後將數據存儲在外部變量的變量中將不起作用。 – instead

+0

顯示更多的關於'i'如何定義的代碼上下文 – charlietfl

回答

1

你可以當事件發生時,可訪問的數據添加屬性:

var $i = $("<i [...] ></i>") 
      .data('href', "privateServices/deleteZone.php?zone="+data[i]) 
      .click(function(){ 
        if(confirm("text")){ 
        location.href = $(this).data('href') 
        } 
       }); 

var $td = $('<td />', {text: data[i]}).append($i); 

或者更簡單的分配data[i]另一個變量並使用該變量來代替。

0

你需要一個額外的功能那會存儲data[i]值。

// put this function outside loop - if any 
function set_click(el, value){ 
    return el.click(function(){ 
     var sure = confirm("text"); 
     if (sure) 
     location.href ="privateServices/deleteZone.php?zone="+value; 
    } 
} 

// [...] 

$('<td />', {text: data[i]}), 
    $('<td />').append(
     function(){ 
      return set_click($("<i [...] ></i>"), data[i]); 
     } 
); 
+1

這並不能解決關閉問題,你自己試一下 – charlietfl

+0

@charlietfl是的,代碼中有小錯誤。現在它確實解決了這個問題。 – instead

+0

不是真的....數據[i]存在同樣的關閉問題,存在於OP代碼 – charlietfl