2012-10-29 4 views
4

특정 조건이 충족되면 간단한 div 인라인 스타일을 추가하고 싶습니다.모델 값을 기준으로 요소에 스타일을 추가하십시오.

"disabled"클래스를 성공적으로 적용 할 수는 있지만 커서 스타일을 표시 할 수 없습니다.

<div class="item @(item.AvailableTimeSlots == "0" ? "disabled" : "")" @(item.AvailableTimeSlots == "0" ? "style='cursor: default;'" : "")> 

어떤 포인터입니까?

+0

'div'에 기본 커서를 지정하고 있습니다. 어떤 일이 발생할 것으로 예상됩니까? –

+0

그 스타일 선언을 요소에 넣기를 기대합니다. 그렇지 않습니다. 다른 클래스를 통해, div 포인터입니다 - 나는 그것을 비활성화하고 마스터 클래스에 들어 가지 않고 포인터 특성을 제거합니다. –

+0

기본 동작은 ** 포인터가 될 것이기 때문에 필자가 묻는 것입니다. 원래 스타일을 추가했는지 확인하기 위해 소스를 확인했는지 확신 할 수 없었습니다. –

답변

2

작업 발췌문

<div class="item @("0" == "0" ? "disabled" : "")" @Html.Raw("0" == "0" ? "style='cursor: default;'" : "")> 

가 고정 나를위한 문제.

<div class="item disabled" style=&#39;cursor: default;&#39;> 

내가 몇 가지 다른 브라우저를 시도하고, DOM을 검사 할 때 각각 다른 결과를 준 : 그것없이, 당신은 같은 것을 끝낼. IE8은 그것을 망가 뜨린다. Chrome이 잘못 수정했습니다. IE9는 제대로 만들어내는 것처럼 보입니다.

몇 가지 참고 사항 : 인라인 스타일을 제거

  • @ 제임스 '솔루션은 좋은 것입니다. 현재 코드는 읽기가 어렵고 인라인 스타일은 거의 좋은 아이디어가 아닙니다.
  • item.AvailableTimeSlots은 문자열이 아닌 정수 여야합니다.
2

모든 포인터?

가능할 때마다 인라인 스타일을 사용하지 않는 것이 좋습니다. cursor 코드를 자신의 CSS 클래스 & 클래스로 옮기는 것이 좋습니다. Html.Raw() 추가

CSS

.default { 
    cursor: default; 
} 
.disabled { 
    ... 
} 

보기

@{ 
    var itemCLass = @item.AvailableTimeSlots == "0" ? "disabled" : "default"; 
} 
<div class="item @itemClass" /> 
+0

주의 깊게 읽으면 스타일은'class' 안에 들어 있지 않습니다. 그것은 정말 혼란 스러울뿐입니다 (코드 분리에 대한 귀하의 조언에 동의 함). –

+1

@TimMedora 당신의 자리에, 나는 그 자리에 * 정말로 * 가까운 곳을보아야 만했습니다.감사합니다 – James

+0

James - 올바른 클래스 정의가 작동합니다. 나는 당신이 위에서 상세히 설명한 것과 비슷하게 추가했고, 그것은 잘 작동했다. 나는 스타일 속성을 넣는 방법을 알아 내려고 노력하고 있는데, 왜 그것이 들어 가지 않았는지 확실하지 않습니다. –

관련 문제