2012-08-01 3 views
-1

큰 격자 값이 있습니다. 처음에는 각 값이 드롭 다운되었습니다. 하지만로드가 매우 느립니다 (+15 초). 그래서 그리드 (일반 테이블)에서 텍스트를 사용하고 텍스트 더블 클릭시 드롭 다운 목록을 사용하고 싶습니다. 이것이 가능합니까? 또한 드롭 다운을 사용할 수 있습니까?텍스트를 드롭 다운으로 변경

다음은 예입니다. 색상이 들어있는 격자 (예 : 파란색, 파란색, 빨간색, 노란색 ...). 단어를 두 번 클릭하면 선택한 텍스트가 드롭 다운으로 바뀝니다. 드롭 다운에는 사용 가능한 모든 색상 인 파란색, 빨간색, 노란색이 포함됩니다. 그런 다음 값을 선택하면 드롭 다운이 사라지고 텍스트에 새 값이 표시됩니다.

$(function() { 
    $('.colorGrid').dblclick(function() { 
     debugger; 
     $(this).html("<select class=\"resultMenu\" id=\"resultMenuID\" size=\"1\"></select>"); 
     $(this).children("select").append('<option value=1>Black</option>'); 
     $(this).children("select").append('<option value=2>Red</option>'); 
     $(this).children("select").append('<option value=3>Blue</option>'); 
     $(this).children("select").append('<option value=4>Yellow</option>'); 
    }); 
    $('#resultMenuID').change(function (event) { 
     debugger; 
     $(this).html("<td>test</td>"); 
    }); 
}); 

나는 내 목표에 가까운 해요 :

지금까지, 나는이 있어요. 이제 선택한 태그의 결과를 태그에 다시 넣어야하고 select는 사라져야합니다! 변경 선택 기능은 절대 호출되지 않습니다. 아무도 이유를 아나요? 이 15초 걸리는 경우

+1

가능합니까? 전혀. – kevin628

+3

현재 귀하의 HTML과 자바 스크립트를 보여줄 수 있습니까? – Undefined

+1

기본 아이디어는 잠재 드롭 다운의 모든 '물건'을 블록에 넣고 숨기고 숨겨진 값에서 보이는 값으로 값을 변경하는 각 블록에 onClick을 추가하는 것입니다. 그런 다음로드 시간을 줄이려면 블록을 클릭 할 때 블록에 적절한 값을로드하십시오. –

답변

1

, 당신은 확실히 MrOBrian가 말했듯이 AJAX 또는 hardcoding the dropdownvalues in javascript strings.

위해 가야, 나는 당신에게 전적으로 귀하의 하나 개 또는 두 개의 라인 문제에 따라 코드를 제공 할 수 없습니다. 여기에서 해결책을 얻으려면 기존 문제 코드를 업로드해야합니다. 그러나 나는 당신에게 아이디어를 줄 수있다.

당신은 온 클릭 핸들러를 추가해야이 색상 블록

<div id="colour-block-list"> 
    <div id="red-block" class="colour-block"> 
    Red 
    </div> 
</div> 

말한다.

$(".colour-block").click(function(){ 

    //call your ajax or get values from hard coded javascript string 
    $(this).html("<select></select>"); 
    $(this).children("select").append(list_of_options); 


}); 
+0

안녕하세요. 이것은 내가 찾고 있었던 바로 그 것이다. 모든 것을 설명하는 데 시간이 걸리기 때문에 코드를 제공하지 않았습니다. 색상 예는 내가 원하는 것과 유사합니다. 한 가지 더, 예를 들어 정기적 인 선택 대신에 드롭 다운을 어떻게 사용합니까? 또한 사용자가 자신의 가치를 선택하면 어떻게 텍스트 형식을 되돌릴 수 있습니까? Thks – alex

+0

나는 나의 목표에 가깝다. 이제 select에 대한 결과를 td에 되돌려 놓아야하고 select는 사라져야합니다! – alex

+1

@alex - 당신은 한 가지를 할 수 있습니다. $ (". color-block"). children ("select"). val()은 값을 얻을 것이다. div에 이것을 추가하십시오. 그런 다음 모든 블록에 대해 숨 깁니다. click() 핸들러에서이 작업을 수행하십시오. 당신이 클릭을 서비스하기 전에 이런 식으로. 모든 선택 블록의 값이 td에 저장됩니다. 다음 td를 숨 깁니다. – afrin216

관련 문제