2009-08-12 5 views
0

spry構文に精通する必要はありませんが、SPRY(AJAXウィジェット)を使用して複数の条件を処理する関数を作成しようとしています。リストを生成する:複数の条件を持つjavascript関数

spry:when="{ds_CurrentRowNumber} == {ds_RowNumber} && {ds_RowNumber} < 4" 

私は同じdivの中のような、すべての4つのliタグの新しいULタグを生成する関数にこれを有効にしたいと思います:

<ul spry:repeatchildren="ds1"> 
    <li spry:if="{ds_RowID} < 4 ">{item}</li> 
</ul> 

<ul spry:repeatchildren="ds1"> 
    <li spry:if="{ds_RowID} > 4 && {ds_RowID} < 9 ">{item}</li> 
</ul> 

何だろう、この機能を見て好き?どんな助けでも大歓迎です。

答えて

0

これは、通常、モジュラス演算子(パーセント記号 - % - Javascriptで)で行われます。

Modulusは、「分割後の剰余」を返します。これは、新しい「行」をヒットしたときを正確に示すことができます。

これは、{ds_RowID}%4 = 0のように、新しい行にいるときにわかるはずです。たとえば、行4のモジュラスがゼロの4%4を返します。 4に分割されたものは剰余がゼロである)。 5%4のモジュラスは「1」であり、以下同様である。

したがって、モジュラスがゼロのときは、特別な処理(前のリストが存在する場合はこれを終了する)と新しい処理を開始します。

いくつかの擬似コード:

itemsPerRow = 4 スタートすべての項目 表示現在のアイテム(

  • ) 上の最初の行(
      ) ループcurrentRowのであればcurrentRowのモジュラスitemsPerRowがゼロ OR ある場合最後 行を終了する(
    ) の場合currentRow < totalRows - itemsPerRow 次の行を開始する行が少なくとももう1つあります。 end if END IF エンドループ

    あなたのインデックスがゼロではなく1から始まりますが、私はあなたのアイデアを得る願っていた場合、このビットを変更する必要があります。

    関連する問題