2013-07-16 2 views
0

이 문제로 어제 오후부터 정신이 없습니다. 나는 우리 사이트의 견적 계산기에서 일해 왔고, 나는 내 양식에 라디오 버튼의 스타일을 넣으려고하고있다. 견적 계산기는 여기에서 볼 수 없습니다 : 당신이 볼 수 있듯이jQuery 입력 [name = ""] 선택기가 작동하지 않습니다.

http://www.thoughtspacedesigns.com/services/web-services/web-design/web-design-quote-calculator

, 때 질문, 인세 오렌지의 배경 변경에 예 중 하나를 클릭하거나 더. 이들은 레이블이 부착 된 라디오 버튼 일뿐입니다. 다음은 몇 가지 샘플 HTML입니다.

<input type="radio" name="cms" value="yes" id="cms1" /><label for="cms1">Yes</label> 
<input type="radio" name="cms" value="no" id="cms2" /><label for="cms2">No</label> 

같은 양식에 여러 개의 '예/아니요'라디오 그룹이 있습니다. 나는 그 다음에 display : none; 라디오 버튼을 클릭하고 그에 따라 라벨의 스타일을 지정합니다. 라벨을 클릭하면 다음, 내가 지금처럼, 그것에 클래스를 추가 할 jQuery를 사용 라디오 버튼의 라벨을 클릭하면

$("label").live('click', function() { 
    var thisInput = $(this).prev("input"); 
    var radioGroup = thisInput.attr("name"); 
    $(this).addClass("checked"); 
    $(":radio[name='"+radioGroup+"']").not(thisInput).next("label").removeClass("checked"); 
} 
); 

그래서 당신이 볼 수 있듯이,의 클래스는 "확인"추가 그 레이블에. 이 클래스는 내 스타일 시트에 지정된 스타일 (배경색)을가집니다. 그런 다음 클릭하지 않은 동일한 이름의 모든 라디오 버튼에 "checked"클래스가 제거되어야합니다.

FireFox 및 Chrome에서 훌륭하게 작동하지만 IE8 (또는 IE7)에서 시도해도 문제가 없지만 모든 항목이 올바르게 작동하지만 클래스가 제거되지 않으므로 $(":radio[name='"+radioGroup+"']") 선택자가 작동하지 않는 것으로 보입니다. 본질적으로 IE에서 내 레이블은 "강조 표시"되지 않습니다. 난 pseudoselectors, 필터를 사용하여 선택기의 많은 변형을 시도하고 여전히 운이. 아무도 이것에 대해 통찰력을 가지고 있습니까?

+2

'.live'는 더 이상 사용되지 않으며'.on'을 대신 사용하십시오. –

+0

IE9에서이 작업을합니까 + –

+0

.on으로 시도해도 여전히 주사위가 없습니다. 나는 맥을 사용하고 실제로 ie9에 접근하지 않는다. 그래서 나는 확실하지 않다. –

답변

2
연결된 스크립트 중 하나가

<css3-container style="Z-INDEX: -1; POSITION: absolute; DIRECTION: ltr; TOP: 780px; LEFT: 0px"> 
    <background style="POSITION: absolute; TOP: 0px; LEFT: 0px"> 
     <group1> 
      <?xml:namespace prefix = css3vml ns = "urn:schemas-microsoft-com:vml" /> 
      <css3vml:shape style="POSITION: absolute; WIDTH: 86px; HEIGHT: 42px; TOP: 0px; BEHAVIOR: url(#default#VML); LEFT: 0px" coordsize = "172,84" coordorigin = "1,1" fillcolor = "#ff7955" stroked = "f" path = " m0,16 qy16,0 l156,0 qx172,16 l172,68 qy156,84 l16,84 qx0,68 x e"> 
       <css3vml:fill></css3vml:fill> 
      </css3vml:shape> 
     </group1> 
    </background> 
</css3-container> 

.prev("input") 더 이상 입력을 찾을 수 없기 때문에 이것은 당신의 선택을 나누기 (HTML을 새로 고침 후 개발자 도구에서 볼 수 있음)하여 <label /><input /> 사이에 다음을 추가 IE에서

+0

빙고! 태그는 css3PIE에 의해 추가되었습니다 : http://css3pie.com/ PIE는 ie7 및 ie8에서 상자 그림자와 같은 css3 속성을 활성화하는 확장입니다. 분명히 그것이 호출 된 요소 앞에 요소를 추가하면됩니다. 내 문제를 해결하기 위해 label 요소에서 PIE을 삭제했습니다. 그러나 여전히 PIE를 사용하고 싶습니다. "prev"가 아닌이 요소를 선택하는 방법이 있습니까? 어쩌면 "가장 가까운"것 같습니까? 나는 잘 모르겠다. 의견? –

+1

@ThoughtSpaceDesigns에서 ID로 선택할 수 없습니까? –

+0

레이블의 "for"속성과 함께 사용합니다. – Andreas

관련 문제