2016-01-22 138 views
0

我還是JavaScript和jQuery的新手,所以我很困惑爲什麼下面的代碼不能按我的預期工作。我所要做的就是將輸入保存在單擊按鈕(id=recordInput)上並用另一個按鈕單擊(id=displayInput)顯示。我觀察到的是tempInput存儲,(代碼工作,直到那一點),但不執行displayInputs onclick屬性的分配。我的問題是,您是否可以在另一個&().click()調用中嵌入$().click()調用?jQuery嵌套函數

<script> 
 
$(document).ready(function() { 
 

 
    $('#recordInput').click(function(event) { 
 
     var tempInput = $('#testInput').val(); 
 
     &('#displayInput').click(function(event) { 
 
      console.log(tempInput); 
 
     }); 
 
    }); 
 
}); 
 

 
</script>

我的想法是這樣的僞代碼:

  1. 分配recordInput onclick屬性以下功能:
  2. 店tempInput
  3. 集displayInput的onclick提醒tempInput價值

我的想法有什麼問題?

注:我並沒有包括任何HTML標籤,但所有的ID都被正確引用

$(document).ready(function() { 

    $('#recordInput').click(function(event) { 
     var tempInput = $('#testInput').val(); 
     &('#displayInput').click(function(event) { 
      console.log(tempInput); 
     }); 
    }); 
}); 

$(function(){ 

var testInput = ''; 
$('#recordInput').click(function(){ 
    testInput = $('#testInput').val(); 
}); 
$('#displayInput').click(function(){ 
    if(testInput !== ''){ 
    console.log(testInput); 
    } 
}); 

}); 

您正在使用&代替$

+0

你是不是指$('#displayInput')? –

+2

用嵌套的''替換'&'。 –

+0

如上所述,您使用'&'而不是'$'。發佈前請檢查您的控制檯。 –

回答

0

我會改變。當然,您不必像我那樣完全格式化代碼。

1

它不工作,因爲你已經把&而不是$這裏

$('#displayInput').click(function(event) { 

修復,這可能工作,但你不應該設置事件處理這種方式。因爲每次調用第一個處理函數時,它都會爲第二個函數設置一個事件處理函數。你可以嘗試使用你的console.log,你會看到console.log的數量正在增加,每次點擊#recordInput。所以你應該這樣設置:

var tempInput; 
$('#recordInput').click(function(event) { 
    tempInput = $('#testInput').val(); 
}); 
$('#displayInput').click(function(event) { 
    console.log(tempInput); 
});