2015-01-27 3 views
0

도움이 필요합니다. 아래 자바 스크립트. 행을 삽입 할 때 각 클릭 (삽입)시 새 번호를 생성하려면 임의의 숫자 t가 필요합니다. 각 행을 프로세서에 배열로 보내야만 각 삽입에 고유 번호가 있어야합니다. 처음에는 작동하도록 할 수 있지만 물론 클릭 만하는 것이 아니라로드시 생성하는 것입니다. 그것을 알아 내려고 몇 시간 동안 노력했지만 주사위는 없었습니다.함수에서 자바 스크립트 난수

어떤 도움이 필요합니까? 당신이 바로 페이지가로드 될 때 t을 정의하기 때문에

<script type="text/javascript"> 
    $(document).ready(function(){ 
    var i=1; 
    var t = Math.floor(Math.random() * 256); 

     $("#add_row").click(function(){ 
     $('#addr'+i).html("<td>"+ (i+1) +"</td><td><input name='need["+t+"][type]' type='text' placeholder='Name' class='form-control input-md' /> </td><td><input name='need["+t+"][scope]' type='text' placeholder='Mail' class='form-control input-md'></td><td><input name='need["+t+"][priority]' type='text' placeholder='Mobile' class='form-control input-md'></td>"); 

     $('#tab_logic').append('<tr id="addr'+(i+1)+'"></tr>'); 
     i++; 
    }); 
    $("#delete_row").click(function(){ 
    if(i>1){ 
     $("#addr"+(i-1)).html(''); 
     i--; 
     } 
    }); 

    }); 

+0

왜 난수 생성을 클릭 기능에 넣지 않으시겠습니까? 이제는 닫힘으로 인해 변수가 인스턴스화 될 때 페이지가로드 될 것이기 때문입니다. –

+0

감사합니다. bmartin !!! 매력처럼 일했습니다! – Tharamis

답변

1

당신은, 당신은 단지 페이지로드에 난수를 생성하는 것이 정확합니다. 당신이 필요가있는 무엇을 클릭 기능 내부의 수, 그래서

var t = Math.floor(Math.random() * 256); 

이 문서가 준비되면 한 번만 대신 클릭 할 때마다 호출되는 방법을 생성합니다.

그래서 대신

$("#add_row").click(function(){ 
    $('#addr'+i).html("<td>"+ (i+1) +"</td><td><input name='need["+t+"][type]' type='text' placeholder='Name' class='form-control input-md' /> </td><td><input name='need["+t+"][scope]' type='text' placeholder='Mail' class='form-control input-md'></td><td><input name='need["+t+"][priority]' type='text' placeholder='Mobile' class='form-control input-md'></td>"); 

    $('#tab_logic').append('<tr id="addr'+(i+1)+'"></tr>'); 
    i++; 

});

, 당신은 것입니다 :

$("#add_row").click(function(){ 
    var t = Math.floor(Math.random() * 256); 
    $('#addr'+i).html("<td>"+ (i+1) +"</td><td><input name='need["+t+"][type]' type='text' placeholder='Name' class='form-control input-md' /> </td><td><input name='need["+t+"][scope]' type='text' placeholder='Mail' class='form-control input-md'></td><td><input name='need["+t+"][priority]' type='text' placeholder='Mobile' class='form-control input-md'></td>"); 

    $('#tab_logic').append('<tr id="addr'+(i+1)+'"></tr>'); 
    i++; 

을});

+1

예. 이런 종류의 것을 클로저 (closure)라고합니다 (http://www.w3schools.com/js/js_function_closures.asp) –

관련 문제