2010-11-20 4 views
3

내 페이지에서 JavaScript가 많이 발생하며 typekit을 사용하고 있습니다. 내 페이지를 제대로 작동하게하려면 (그리드 및 물건) 새로운 typekit 글꼴 이벤트를 사용하고 있습니다.jQuery : catch {call function} 시도가 작동하지 않습니까?

단순히 글꼴을로드할지 여부를 확인하는 try 및 catch 문입니다. 그러나 어쨌든 나는 그것을 얻지 못하고있다. typekit 글꼴이로드 된 경우 setGrid() 함수를 호출합니다. iPad 또는 iPhone은 아직 지원하지 않으므로 setGrid() 기능을 호출하지 않으면 내 페이지가 제대로 표시되지 않습니다.

어쨌든 오류 문에서 함수를 호출하고 싶습니다. 따라서 iPhone에서 페이지를 호출해도 페이지는 웹 글꼴 없이도 작동합니다. 그러나

try { 
Typekit.load({ 
    loading: function() { }, 
    active: function() { setGrid(); }, 
    inactive: function() { } 
}) 
} catch(e) { 
alert('error'); //works 
setGrid(); //doesn't get called 
} 

alert 작품은 setGrid() 함수가 호출되지 않습니다. 아이디어가 있으십니까?

편집 :

var setGrid = function() { 
$('#header, #footer').fadeIn(500); 
return $("#grid").vgrid({ 
    easeing: "easeOutQuint", 
    time: 800, 
    delay: 60 
}); 
}; 
+0

'setGrid()'가 호출되지 않았다는 증거는 무엇입니까? 아마도 그 함수가 너무 예외를 던지고 있습니까? (또한'alert()'다음에 세미콜론을 잊어 버리면 실행에 영향을 미치지 않을 것이다.) 그러나 – cdhowie

+1

이것은 문제를 풀지는 못하지만 : 세미콜론을 생략하면 나쁜 연습으로 간주 될 수있다. 많은 것을 깨뜨려 라. 당신은 항상 그들을 넣어해야합니다. – jwueller

+0

시도 경보 (setGrid); 경고 ('오류') 대신 - 지금은 무엇을 볼 수 있습니까? –

답변

3

을 통해 점점 확인 후

  • alert "진짜"기능 , 다음과 같이 :

    function setGrid() { 
        $('#header, #footer').fadeIn(500); 
        return $("#grid").vgrid({ 
        easeing: "easeOutQuint", 
        time: 800, 
        delay: 60 
        }); 
    }; 
    
  • 2

    함수가 호출되는 않지만, 그것은 단지 당신이 그것을 호출하기 아니라고 생각하는 원인 예상대로 작동하지 않습니다 기능은 같다. setGrid의 첫 번째 행으로 경고를 추가하여 호출되는 것을 볼 수 있습니다.

    jsfiddle link

    +0

    예. 아마도 그는 경고가 끝날 때까지 실행이 경고에서 중단된다는 사실에 혼란 스러울 것입니다. _ 그 후, 계속해서'setGrid()'를 실행합니다. –

    +0

    아니요 경고에 혼동하지 않으려 고합니다. 경고()가 호출되었지만 내 기능이 작동하지 않는다는 것을 보여주기 위해 경고를 설정합니다. 나는 나의 포스트를 편집했다! – matt

    1

    할 수 있습니다 : 너무 주위

    • 시도/캐치 setGrid, setGrid은 그것을 만드는 시도 setGrid
    +0

    setGrid()가 호출되지 않은 후 경고가 잘 발생합니다! setGrid() 호출 전에 alert()을 설정하면 작동합니다! – matt