2012-06-23 2 views
0

jsfiddle 대 현재 높이에 따라 사업부 높이를 전환은 여기에 있습니다 :JQuery와 - 제한

$('div.wrap').click(function(){ 
    var $minY = $('div.imgur-wrap').height(); 
    if ($minY = 280) { 
     $('div.wrap').animate({height: 500}); 
    }else{ 
     $('div.wrap').animate({height: 280}); 
    } 
});​ 

내가 그것을 새로운 높이 (500)를 가지고 있기 때문에 상상할 때 http://jsfiddle.net/M86nA/

코드는 이것이다 if를 실행 하시겠습니까? 내가 어떻게 할 수 있니?

감사합니다.

편집 : "="을 "=="로 바꾸고 선택기에서 "imgur"를 제거하면 수정됩니다.

+2

'($ MINY의 == 280)'의 경우 -이해야 여기에 두 개의 등호가있다. 너는 단 하나 뿐이다. – bfavaretto

+0

그걸 수정했습니다. 도. 감사. 호기심 많은 이들에게도 아래의 해결책이 효과적입니다. – elzi

+2

다음 번에는 같은 HTML을 가진 바이올린을 제공합니다 .. 데모는 그것 안에'imgur-wrap'을 가지고 있습니다 – charlietfl

답변

1

현재 코드를 사용하여 클래스 참조와 ===으로 수정하십시오.

변경

var $minY = $('div.imgur-wrap').height(); 

참조

var $minY = $('div.wrap').height(); 

전체 코드에 :

$('div.wrap').click(function() { 
    var $minY = $('div.wrap').height(); 
    if ($minY == 280) { 
     $('div.wrap').animate({ 
      height: 500 
     }); 
    } else { 
     $('div.wrap').animate({ 
      height: 280 
     }); 
    } 
});​ 

는 참조 DEMO

+0

감사합니다. imgur-wrap 내 실제 코드에서 남겨졌다. bfavaretto가 지적했듯이 이것은 효과가있었습니다. – elzi

+0

@elzi : 아, 알겠습니다. 나는 그것이 여전히 피들에 링크 된 코드의 일부이기 때문에 그것이 실현되지 않았다. 중요한 것은 당신이 그것을 분류했는지입니다. – Nope

3

당신은 in this example

$('div.wrap').toggle(function() { 
    $(this).animate({ 
     height: 500 
    }); 
}, function() { 
    $('div.wrap').animate({ 
     height: 280 
    }); 
});​ 

jQuery를 같은 jQuery .toggle()를 사용할 수있는 것이다 다시 다른 후에 .toggle(), 하나 제공하는 기능 사이의 "전환". 280 픽셀이 초기 상태이므로 높이 500을 먼저 발생시킨 다음 280을 다시 발생시킵니다.

+0

고맙습니다 ... 저의 작품처럼, 저는 bfavaretto가 지적한 것처럼 또 다른 표식을 놓치고있었습니다. 도. – elzi

+1

두 가지 방법은 div를 빠르게 클릭하는 것과 다르게 반응합니다. 그게 중요한지 확실하지 않습니다. – Brilliand

+0

@Brilliand : 조건부 검사없이 토글과 위 코드를 사용하면 모든 클릭이 간단하게 전환됩니다. 실수로 두 번 클릭하면 조건부 검사가 아니므로 다시 축소됩니다. 원래 코드를 사용하는 동안 의도하지 않은 추가 클릭이 대기열에 있거나 실행되지 않습니다. 개인적으로 나는 우연히 두 번 클릭하면 내가 원했던 것을 원상태로 돌리고 싶지 않을 것이다.하지만 다시 한번 모든 것이 성취하려는 행동에 달려있다. – Nope