2011-01-25 7 views
0

このページを機能のある場所に移動すると、スタックオーバーフローから多くの助けがありました。ほとんどの場合、jQueryの専門家ではありません。作業例:Jqueryのコールバックスクリプトは実行されますが動作しません

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

私はGalleriffic(ダイナミックギャラリーjQueryのプラグ)と流砂(jQueryのフィルタプラグ)を使用しています。

サムネイルをクリックすると、大きなペインに正しく読み込まれます。プロジェクトタイプまたは業界を選択すると、いくつかのデータタイプに基づいてサムネイルがソートされます。

ただし、それらを並べ替えると、ギャラギス機能が機能しなくなるという問題があります。そこで、これを修正するために、私はクイックサードの初期化の中でもう一つのガリフェリコールをラップしました。クイックソングが完了すると、それはギャリアフィックをリセットします。

しかし、私はこの時点でガレリフからエラーが発生しており、理由はわかりません。私はページが読み込まれ、それが動作するときに呼び出されているのとまったく同じ方法を呼び出しています。

答えて

2

私はあなたのページのソースを調べると、そこにはいけない295行目(問題のゾーンの直前)に「d」が見えました。多分それが理由です、あなたのコードは実行されません。

+0

この時点であなたは私より多くの忍耐をしています。私は情報源の途中で読書を断念した。 –

+0

それは問題ではありません。エラーは2番目の '.galleriffic()'呼び出しと関係しています。 –

+0

それゆえ、.galleriffic()は実行されません。彼らはそれを構文エラーと呼びます。 – Kerstomaat

0

第2の.galleriffic()コールが原因でエラーが発生しているようです。私が得るエラーはCannot convert 'imageData' to objectです。これは、(たとえば)Project Type - > Brochure Packagesに切り替えると、gallerificはデータ属性に基づいて現在のイメージIDを0に設定しようとするためです。しかし、quicksandは、gallerificに2番目の呼び出しで要素(別名イメージ)が表示されないようにデータ配列をねじ込むように見えます。私は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は画像を間違って削除し、変更は更新されません。

修正方法?さて、一つの選択肢は、あなたのクイックサンドの削除と追加の部分を書き直して書き直すことです。もう一つは、クイックサンドの削除部分を削除するのではなく、HIDE要素だけに書き換えることです(つまり、.remove()の代わりにdisplay:none;を設定します)。

私はこれが役立つことを願っています。それは私が思いつくことができるすべてです。

+0

Drackir、 ありがとうございました。私はあなたが言っていることに従っていると思うし、それは理にかなっていると信じています。私はクイックサンドのjsソースにいて、私は行を削除する2行を見ています(80行目と300行目)。私はこれをどのように書き直すかについてはあまりよく分かりません。あなたは何か提案をしてもらえますか? 私は$ dest.cssを試しました( 'display': 'none');しかし、それは私にエラーを与えました... 同時に、私はこの行を完全に削除したとき、私にエラーを与えなくなり、Gallerifficは完全にその時点で消えていないように見えます。何かご意見は? – Redlist

+0

@Redlist: '$ toDelete.css( 'display'、 'none');'を試してください。80行目と同様に '$ dest'変数を使って300行目を試してみてください。忘れないでください。要素を追加する場所を見つけて、それらをリセットするために '.css( 'display'、 '');に変更する必要があります。私はクイックサンコードを非常に簡単に見てきました。ちょうどそれがどのように動作するかを理解してみてください:古い要素(どこかに格納しておく必要があります)を置いてから保存/削除/読み込みを行わないように修正して、隠す/表示します。 –

+0

Drackirありがとう、本当にありがとう。これを試してみよう。 – Redlist

関連する問題