2012-09-23 3 views
1

페이지가로드 된 직후 제목에 전환 효과 (아래에서 위로)를 만들려고하는데 왜 작동하지 않는지 알 수 없습니다.jQuery 트리거가 작동하지 않습니다.

HTML :

<div class="portfolio-title-wrap animate"> 
    <div class="portfolio-title">Rooftop Garden </div> 
    <div class="location">San Francisco, CA</div> 
</div> 

CSS :

.animate { 
background-color: #c00; 
-webkit-transition: all 1s ease; 
-moz-transition: all 1s ease; 
-o-transition: all 1s ease; 
-ms-transition: all 1s ease; 
transition: all 1s ease; 
position: absolute; 
top: 100%; 
right: 0; 
} 

.animate.move { 
top: 0%; 
margin-top: -700px; 
} 

.portfolio-title { 
color: #F8941F; 
font-weight:bold; 
} 

jQuery를 :

jQuery('.animate').trigger(
function() { 
$(this).addClass("move"); 
}); 

데모 :Fiddle

+1

피들의 왼쪽 드롭 다운에서 jQuery를 선택하십시오. 그리고 다른 점을 제외하면이 코드가 무엇을 기대하며, 그렇게하지 않았는지? 덧붙여 말하자면 [trigger()'] (http://api.jquery.com/trigger/)가 * event *를 트리거하기 때문에 필요한 것은 ['addClass()'] (http : //api.jquery .com/animate /). –

답변

2

.trigger()이 작동하려면 이벤트 유형을 전달해야합니다. 그러면 지정된 이벤트 유형에 대해 첨부 된 모든 핸들러가 실행됩니다. 예를 들면 :

$('.animate').bind('move-event', function() { // handler will fire when 'move-event' is triggered 
    $(this).addClass("move");   
}); 

$('.animate').trigger('move-event'); 

DEMO. 그냥 페이지로드 클래스 move를 추가하려면

, 필요 그냥 클래스 추가, 모든 trigger을 사용하지하기 : 당신은 실제로 아무것도를 유발하지 않는

$(document).ready(function() { 
    $(".animate").addClass("move"); 
}); 
+0

트리거 기능 및 답변에 대한 설명 주셔서 감사합니다! 실제로 페이지가로드 된 후에'animate '클래스에'move' 클래스를 추가하려고했지만 -이 모든 것을 잘못보고있었습니다. –

0

을, 당신은 either an event name or an Event object을 통과해야 :

.trigger(eventType [, extraParameters]) 

예 :

// Create a new jQuery.Event object with specified event properties. 
    var e = jQuery.Event("keydown", { keyCode: 64 }); 

    // trigger an artificial keydown event with keyCode 64 
    jQuery("body").trigger(e); 
관련 문제