2012-03-06 6 views
0

ブログの記事のようにニュースアイテムのページを作成しようとしています。ニュースアイテムをphpで取得してニュースとショーの文字数を制限したいリンク。ユーザーがもっと読むをクリックすると、すべてのコンテンツと非表示ボタンが表示されます。ユーザーが非表示をクリックすると、コンテンツが非表示になり、元の状態が表示されます。 私が抱えている問題は、ニュースアイテムをクリックすると他の投稿アイテムにリンクを隠すようになり、他のニュースのコンテンツも表示されることです。jqueryのニュースセクションのボタンの問題をもっと読む

多くのコード行があるため、私はFiddleに自分のソリューションを掲載しました。もし私がすべてのコードを提供しなかったら、これがフィドルの私の最初の投稿であることを伝えてください。あなたがページ内にあるクラスのコレクション全体を使用しているあなたは、個々のニュースモジュール内の範囲を保持するためのfind()メソッドを使用しているプラ​​グインのいくつかの地域では http://jsfiddle.net/wqXPg

答えて

1

、他人

完璧な例はあなたですinit()を呼び出すためにループを開始し、init()への引数として各要素を渡しますが、使用されず、すべてのa.readmoreにバインドします。

コンテキストが役立ちます。

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

news.containerもご利用ください。そのクラスのページにあるすべてのコンテナです

1

プラグインを作成するときは、guidelines that the JQuery team has set upに従ってください。

明確に定義された機能のように、明確な範囲内でコードを維持、検査、理解する方がずっと簡単です。関数の周りを「ジャンプ」し、どこにでもパラメータを渡すことは面倒でスパゲッティコードにつながる可能性があります。

concept of scopeを把握できれば、プラグインを構築する方がはるかに簡単です。

私はthis exampleを作って学ぶことができます。

+0

thx、私はプラグインを作ろうとしていませんでした。 – Mythriel

+0

@Mythriel興味深いことに、これはプラグインと同様に扱われたので、プラグインと仮定しました。いずれにしても、プラグインの部分を削除してドキュメントのロード時に実行させるだけで、プラグインを作成していない場合は、関数のプロパティでオブジェクトを囲む必要はありません。 – ShadowScripter

+0

私はかなりJSに新しいです、私は完全なOOP言語の背景といくつかのツイートを見て、そのように自分のコードを構造化し始めた。とにかくそれをプラグインとして作っていることは悪い考えではありません。私はあなたがそれをやったのが好きです。 – Mythriel

関連する問題