2010-06-16 6 views
0

문자열에 따라 문자열 끝에 'Year'또는 Years '를 추가하고 싶습니다. 이처럼 :이 작동하지 않습니다jQuery UI : 평가 실행 방법

$("#slider").slider({ 
    value: 1, 
    min: 1, 
    max: 25, 
    step: 1, 
    slide: function(event, ui) { 
     $("#amount").val(ui.value + ' Year' + function(){return (ui.value == 1) ? '' : 's';}); 
    } 
    }); 

// and again I want to do the same for the initialization of the value: 
$("#amount_3").val($("#slider_3").slider("value") + ' Jahr' + function(){return ($("#slider_3").slider("value") == 1) ? '' : 's';}); 

: jQuery를 UI를 사용

$("#selector").val(conditional_value_here); 

나는 값을 조작하는 슬라이더가 있습니다. 이것에 올바른 방법은 무엇입니까? Reigel 말했듯이

+0

많은 사람들이 커뮤니티 위키로 표시했기 때문에 많은 사람들이 답변에 신경을 쓰지 않을 것입니다. 게시자가 게시 한 모든 것에 대해 평판을 얻지 못할 것입니다. – animuson

+0

정보를 주셔서 감사합니다, 내 실수 .. 그것을 취소 할 수 없습니다, 그것은 보인다. – mikkelbreum

답변

0

$("#amount").val(ui.value + ' Year' + (ui.value == 1) ? '' : 's'); 
+0

우선 순위를 잊지 마세요. 'ui.value + 'Year'+ (ui.value == 1)'항상 유효합니다. – nickf

1

, 당신은 단지 기능을 필요없이 삼항 연산자 ? :를 사용할 수 있습니다. condition이 참

condition ? x : y; 

경우, x 그렇지 않으면 y가 반환, 반환됩니다. 그것을 사용할 때 괄호를 자유롭게 사용하십시오.

str = "This is " + numDays + numDays == 1 ? " day" : " days" + " old"; 

// no matter the value of numDays, the above always evaluates to " day" 
// it is equivalent to: 

str = ("This is " + numDays + numDays == 1) ? (" day") : (" days" + " old"); 

// instead, this is probably what was wanted: 

str = "This is " + numDays + (numDays == 1 ? " day" : " days") + " old"; 

또는, 당신은 정말 정말정말 당신이 당신의 예에서 재판을 어떤 식으로 뭔가를 할 수 좋은 이유는, 당신이이 같은 일을 만들 수 있던 경우 :

$("#amount").val(
    ui.value + ' Year' + (function(){return (ui.value == 1) ? '' : 's';})() 
); 

... 생산 과정에서 그런 것을 본다면 큰 도끼로 사냥을해야 할 것입니다.

+0

감사합니다,하지만 어떻게 작동합니까 설명 할 수 : str = "이것은"+ numDays + (numDays? "day": "days") + "old"; 내 말은, 조건은 어디에 있습니까? 비교 연산자가 없으므로 var numDays는 0이 아니면 TRUE로 평가되지 않습니까? 그래서 1과 3은 각각 '1 일'과 '3 일'이라는 문자열을 얻게됩니까? – mikkelbreum

+0

@mikkelbreum ah true - 용서해주세요. 나는 지금 편집 할 것이다. – nickf