0

データベースからすべてのコメントを取得します。

コメントが 95 より長い場合、template_lite 関数はそれを切り捨てます。

   <form action="#" method="post" />
    {foreach value=users from=$comment2}
    <tr>   
        <td>{$users.ADD_DATE}</td>
        <td>{$users.USERNAME}</td>
        {if $users.COMMENT|count_characters > 95}
         <td width="340px"><span id=comment12kisa_{$users.ID}>{$users.COMMENT|truncate:95:"..."}
            </span><a href="" onclick="$('#comment12kisa_{$users.ID}').html($('#comment12kisaa_{$users.ID}').html()); $(this).remove(); return false;">devamı</a></td>
        <td><center><input type="checkbox" name="checkComment[]" value={$users.Movie_Comment_ID}-{$users.MOVIE_ID} ></center></td>

            {else}
            <td width="180px">{$users.COMMENT}</td>
            <td><center><input type="checkbox" name="checkComment[]" value={$users.Movie_Comment_ID}-{$users.MOVIE_ID}></center></td>
            {/if}

            <span id="comment12kisaa_{$users.ID}" style="display:none">{$users.COMMENT}</span>

</tr>
        {/foreach}
</table>

    <p align="right"><input type="submit" name="deleteCommentonMovie" value="Seçilen Yorumları Sil"/></p>

     </form>

ユーザーが「devam」リンクをクリックすると、コメント全体が開かれる必要があります。ただし、クリックすると最初のものしか開きません。4 番目のものをクリックしても最初のものしか開きません。何が原因でしょうか?

4

1 に答える 1

0

正しい jQuery メソッドを使用していないようです (2 回)。CMS は、デフォルトで非表示になっているスパンにコンテンツをロードしているようです。セレクターは正しいように見えますが、.html() を使用するのではなく、slideDown() や show() などを試してください。

$('#comment12kisa_{$users.ID}').slideDown();

これをローカルでテストしている場合、ユーザー ID は各コメントで同じである可能性があります。その場合、コメント スレッド全体で同じ ID が複数存在します。ID に「12」を設定して、コメントごとに異なる整数を設定してみてください。より具体的には、foreach の上で変数を開始し、それをゼロに設定してから、ループの下部 (ただし内部) でその値をインクリメントします。

于 2012-04-05T14:26:19.347 に答える