2011-01-25 6 views
0

스택 오버플로로부터 많은 도움을 받아이 페이지를 기능이있는 곳으로 가져 왔고 거의 다 왔습니다. 저는 jQuery 전문가가 아닙니다. 근무 예 :Jquery 콜백 스크립트가 실행되지만 작동하지 않습니다.

http://www.metropoliscreative.com/jake_test/test1.html

내가 Galleriffic (동적 갤러리의 jQuery 플러그인)과 무덤 (JQuery와 필터링 플러그)를 사용하고 있습니다.

미리보기 이미지를 클릭하면 큰 패널에 제대로로드됩니다. 프로젝트 유형 또는 업종을 선택하면 일부 데이터 유형에 따라 축소판을 정렬합니다.

그러나 일단이를 정렬하면 Galleriffic 기능이 작동하지 않는 문제가 있습니다. 그래서이 문제를 해결하기 위해 나는 quicksand initialization 내에서 또 다른 galleriffic call을 감쌌다. 그래서 일단 완료되면, 그것은 galleriffic을 다시 설정합니다.

그러나이 시점에서 galleriffic에서 오류가 발생하며 확실하지 않습니다. 페이지가로드 될 때 호출되는 것과 똑같은 방식으로 호출하고 있습니다.

답변

2

페이지의 소스를 살펴보면 295 행 (문제 영역 바로 앞에있는)에 'd'가 없어야한다는 것을 알았습니다. 어쩌면 그것이 이유 일 뿐이며, 코드가 실행되지 않을 수도 있습니다.

+0

이 시점에서 나는 당신보다 더 많은 인내심을 가지고 있습니다. 나는 소스의 중간에있어 독서를 포기. –

+0

그건 문제가되지 않습니다. 오류는 두 번째'.galleriffic()'호출과 관련이있다. –

+0

그 때문에 '.'은 .galleriffic()이 실행되지 않습니다. 그들은 그것을 구문 오류라고 부른다. – Kerstomaat

0

두 번째 .galleriffic() 호출로 인해 오류가 발생하는 것으로 보입니다. 내가 얻는 오류는 Cannot convert 'imageData' to object입니다. 이는 (예를 들어) Project Type -> Brochure Packages로 전환하면 gallerific이 데이터 속성에 따라 현재 이미지 ID를 0으로 설정하려고하기 때문에 나타납니다. 그러나 quicksand은 두 번째 호출에서 gallerific이 어떤 요소 (이미지라고도 함)를 보지 못하게하는 데이터 배열을 망가 뜨리는 것처럼 보입니다. 나는 quicksand이 문제를 야기하고 있다고 생각하는데, 아마도 이미지를 올바르게 제거/추가하지 않기 때문일 것입니다. 당신이 this 예를 보면, 이미지를 제거하기위한 코드는 다음과 같다 :

$('#removeImageByIndexLink').click(function(e) { 
    if (!gallery.removeImageByIndex(5)) 
     alert('There is no longer an image at position 5 to remove!'); 

    e.preventDefault(); 
}); 

quicksand 그냥 이미지를 없애 .remove()를 사용하는, 그러나 보인다. 자, removeImageByIndex()에 대한 코드를 살펴보면 gallerific.remove()quicksand에 의해 호출 될 때 업데이트되지 않는 이미지에 대한 정보 캐시를 유지합니다.

tldr; Quicksand가 이미지를 잘못 제거하고 갤러리가 변경 사항을 업데이트하지 않습니다.

문제를 해결하는 방법은 무엇입니까? 글쎄, 하나의 옵션을 시도하고 귀하의 quicksand 스크립트의 제거 및 추가 부분을 다시 작성하여 갤러리를 알고있을 것입니다. 또 다른 하나는 quicksand의 제거 부분을 제거하기보다는 숨기기 만하는 부분으로 다시 작성하는 것입니다 (즉, .remove() 대신 display:none;을 설정하십시오).

이 정보가 도움이되기를 바랍니다. 그게 내가 생각해 낼 수있는 전부입니다.

+0

Drackir, 답변 해 주셔서 감사합니다. 나는 네가하는 말을 따르고 있다고 생각한다.저는 quicksand js 소스에 있는데 제거 선이있는 두 줄 (80과 300 줄)이 보입니다. 이 방법을 다시 작성하는 방법을 잘 모르겠습니다. 의견을 제시해 주시겠습니까? 나는 $ dest.css를 시도했다 ('display': 'none'); 그러나 그것은 저에게 오류를주었습니다 ... 동시에,이 줄을 모두 지울 때, 그것은 나에게 오류를주는 것을 멈추었고, Galleriffic은 완전히 그 지점에서 사라지는 것처럼 보입니다. 이견있는 사람? – Redlist

+0

@Redlist :'$ toDelete.css ('display', 'none');'라인 80은'$ dest' 변수를 가진 라인 300과 똑같이 사용합니다 (사용하는 구문은 약간 다릅니다). 잊지 마세요. 요소를 다시 추가하는 부분을 찾아서 .css ('display', '');로 변경하여 재설정해야합니다. 나는 잠깐 퀵 샌드 코드를 살펴 봤다. 그냥 그것이 작동하는 방법을 이해하려고 : 오래된 요소 (어딘가에 저장해야합니다)를 넣은 다음 그것을 저장/제거/readd하지 않도록 수정하여 그냥 숨기거나 보여줍니다. –

+0

감사합니다. Drackir, 정말 고맙습니다. 이걸 시험해 볼거야. – Redlist

관련 문제