0

ブログ投稿と同じように、ニュース項目を含むページを作成しようとしています。php でニュース項目を取得し、ニュースの文字数を制限して、続きを読むリンクを表示したいと考えています。ユーザーが [続きを読む] をクリックすると、すべてのコンテンツと非表示ボタンが表示されます。ユーザーが非表示をクリックすると、コンテンツが非表示になり、元の状態が表示されます。私が抱えている問題は、ニュース項目で [続きを読む] をクリックすると、他の投稿項目に非表示リンクが作成され、他のニュースのコンテンツも表示されることです。

コード行が多いため、ソリューションを Fiddle に投稿しました。すべてのコードを提供していない場合は、教えてください。これは Fiddle に関する私の最初の投稿です。 http://jsfiddle.net/wqXPg

4

2 に答える 2

1

個々のニュースモジュール内でスコープを維持するためにfind()メソッドを使用しているプラ​​グインの一部の領域では、ページにあるクラスのコレクション全体を使用している他の領域です。

完璧な例は、下部のループから始めてinit()を呼び出し、各要素を引数としてinit()に渡しますが、それは使用されず、clcikハンドラーをすべてa.readmoreのページにバインドします。

この種のコンテキストの詳細が役立ちます。p.find()に注意してください

 init: function(config, p){
        $.extend(this.config, config);
        this.createSubString(p);
        p.find('a.read-more').on('click', news.show);
    }

また、の使用法もよく見てくださいnews.container。それはそのクラスのページ内のすべてのコンテナです

于 2012-03-06T18:19:00.827 に答える
1

プラグインを作成するときは、JQuery チームが設定したガイドラインに従う必要があります。

明確に定義された 1 つの関数内など、明確な範囲内でコードを維持、検査、および理解することは、はるかに簡単です。関数を「飛び回って」パラメータをあちこちに渡すのは面倒で、スパゲッティ コードにつながる可能性があります。

scope の概念と、プラグインの作成方法を理解できれば、はるかに簡単になります。

私はあなたが勉強して学ぶことができるこの例を作りました.

于 2012-03-07T19:04:22.347 に答える