2013-02-12 3 views
0

좋아요, 제 제목은 그다지 유익하지 않습니다. 설명하겠습니다.다른 선택 상자의 Li 요소로 상자 선택

jQuery로 처리하려고하는 페이지가 있습니다. 해당 페이지 (이전 페이지)에는 내 (새) 페이지로 가져 오는 선택 드롭 다운 메뉴가 있습니다. 선택 드롭 다운은 li 요소가있는 ul을 사용하는 반면, 내 것은 select 요소와 함께 select 요소를 사용합니다.

jQuery('#selectQuestion').change(function() 
{ 
    strQuestion = jQuery('#selectQuestion :selected').val(); //get the value of "option", which is Question + x 
    strAnswer = jQuery('#txtQuestionAnswer').val(); 

    intQuestionNumber = strQuestion.substr(8, 2).trim(); //gets the number (so Question + x becomes x) 

    jQuery('#ctl00_ContentPlaceHolder1_ddlQuestion_Arrow')[0].click(); //I click THEIR dropdown menu 

    jQuery('.rcbItem:eq(' + (intQuestionNumber-1) + ')').click(); //Select THEIR li element that matches MINE) 

    jQuery('#ctl00_ContentPlaceHolder1_ctbAnswer').val(strAnswer); 
}); 

이 시간의 90 %를 작동합니다

var totalQuestions = jQuery('.rcbItem').length; //get the total elements in theirs 

for (x = 0; x < totalQuestions; x++) //for loop to create the dropdown on mine 
{ 
    var questionText = jQuery('.rcbItem:eq(' + x + ')').html(); 

    jQuery('#selectQuestion').append(jQuery(document.createElement('option')).attr(
    { 
     'value' : "Question" + x 
    }).html(questionText)); 
} 

var strQuestion = jQuery('#ctl00_ContentPlaceHolder1_ddlQuestion_Input').val(); //gets the value currently in THEIR select field 

var objQuestionNext = jQuery("#selectQuestion").find("option:contains('" + strQuestion + "')"); 

objQuestionNext.attr(
{ 
    selected : 'true' 
}); //finds the question in MY list that matches THEIR select field, and then selects that one 

이것은 내 드롭 다운 목록에서 질문을 선택 할 때마다 실행되는 코드입니다 : 여기

내가 가진 것입니다.

그러나 목록에서 마지막 옵션을 선택하면이 일이 발생합니다. 그것을 선택합니다. 괜찮습니다. 그러나 목록에서 다른 질문을 선택하면 원하는 질문 바로 위에있는 질문을 선택하기 시작하고 페이지를 완전히 다시로드 할 때까지 계속 수행합니다. 이것은 드롭 다운에서 마지막 요소를 선택하는 경우에만 발생합니다.

나는 이것에 대해 내 머리를 짚고 있었고 대답을 찾지 못했습니다. 누구나 통찰력을 제공 할 수 있습니까? 감사.

편집 : 마침내 문제가 발견되었습니다. 코드에서 li 요소가있는 모든 .rcbItem 클래스는 클릭이 발생했을 때 .rcbHover 클래스로 덮어 쓰게되었습니다. 그래서 그것을 고치기 위해, 기본적으로 .rcbItem을 jQuery('.rcbList li')....으로 변경했습니다. 이제 완벽하게 작동합니다.

도움 주셔서 감사합니다.

+1

은 당신이보고를 디버깅 봤어 jQuery를에 있지만 DOM 요소에 어디 잘못이야 트리거? http://www.jsfiddle.net에서 데모를 만들 수 있습니까? –

+0

최소한 HTML 마크 업을 보여 주면 도움이 될 것입니다. – kidwon

+0

불행히도, 나는 당신에게 줄 HTML이 없습니다. 이 페이지에서 내가 만진 유일한 것은 자바 스크립트입니다. 자신의 물건이 많이 ASP가 아닌 HTML로 코딩하고, 그것을 자신의 코드이기 때문에 그 부분을 만지지 수 없습니다. – snowfi6916

답변

0

이 사항이 정상입니까?

jQuery('#ctl00_ContentPlaceHolder1_ddlQuestion_Arrow')[0].click(); 

당신은 jQuery의 .click하지

+0

해당 ID는 "a"요소에 속하므로 괜찮습니다. – snowfi6916

관련 문제