2016-06-26 3 views
-2

두 개의 드롭 다운 목록 (선택)을 조합하여 사용하고 있습니다. 사용자가 첫 번째 목록에서 선택한 선택 사항에 따라 두 번째 목록은동적으로 생성 된 선택 (드롭 다운) 목록에서 옵션을 선택하십시오.

$("#second-choice").load("textdata/" + $('#first-choice').val() + ".txt") 호로 채워집니다. 웹 페이지의 다른 부분에서 같은 목록의 콤보를 사용하여 사용자가 만든 선택 항목을 인덱스로 저장합니다 (첫 번째 선택 항목은 0 등으로 저장됩니다). 그런 다음 n 번째 자녀 (whatIhaveSaved)를 통해 사용자의 선택을 다시 채우고 선택합니다.

그러나 내가 수행 할 수없는 것은 두 번째 목록에서 선택하는 것입니다 (즉, 목록 데이터를로드하지만 읽고있는 값에 관계없이 목록 데이터를로드하지는 않습니다). 그것에 대해 무엇을 할 수 있습니까? 본질적으로 무슨 일 무엇을 내가 원하는 것은 그래서

나는 훨씬 더 많은 코드를 추가 할 수 없습니다입니다 :

$("#first-choice").change(function() { 
     $("#second-choice").load("textdata/" + $(this).val() + ".txt"); 
    }); 

다른 모든 설정을 내가 저장할 잘 작동 사용하여 :

$('#first-choice option:nth('+ parseInt(savedPresets[0]) +')').attr("selected","selected"); 

예를 들어이 설정이 적용되면 두 번째 목록도 채워집니다. 그러나 두 번째 목록에 대한 다음과 비슷한 호출은 무시되고있는 것처럼 보입니다.

불행하게도, 나는 많은

+2

더 많은 자원을 수신 성공 콜백을해야 할 새로운 HTML과 상호 작용하려면

이, 당신이 우리에게 더 많은 코드를 보낼 수 있음을 의미? – shadownrun

+0

컨텍스트가 없으면 내 생각에 jquery의'.on()'이있는 클릭을 동적으로 추가되는 선택 옵션에 바인딩하지 않는 것입니다. –

+0

작동하지 않는 코드를 보지 않고는 아무도 도움을받을 수 없습니다 .... [mcve ] – charlietfl

답변

0

하나의 문제는 load()는 아약스 방법이며 아약스 비동기 때문이다 jQuery를 경험하고 있지 않다. 당신은 당신이 HTML 후 화재가 좋은 것

$("#first-choice").change(function() { 
     $("#second-choice").load("textdata/" + $(this).val() + ".txt", function(){  
     // new html exists can work with it here 

     }); 

    // any code here will run before new html arrives 
}) 
+0

감사합니다 !!! 이것은 그 것이었다! 바보 야! – Orestis

+0

걱정 마세요 ... 처음에는 누구나 비동기 프로그래밍을 파악하지 못합니다. – charlietfl

관련 문제