原型/Scriptaculous:通过单击段落组 (
) 来选择它们
给出了段落列表 (
)。 一旦用户单击段落 A,段落 A 的类别就会更改为“已激活”。 现在,用户选择段落 B,并且 A 和 B 之间的所有段落都将其类别更改为“已激活”。
再次单击 B,只有 A 仍属于“活动”类。
通过单击 A,A 和 B 之间的所有段落(包括 A 和 B)上的“活动”类将被删除。
不可能“停用”A 和 B 之间的任何段落。A 和 B 之间的选择应该始终是所选段落的不间断列表。
谁能告诉我如何使用 Prototype/Scriptaculous 实现这一点? 该应用程序是在 Rails 中实现的,因此 RJS 中的任何提示都将更加感激!
A list of paragraphs (<p>
) is given. As soon as the user clicks on paragraph A the class of paragraph A changes to "activated". Now the user selects paragraph B and all the paragraphs between A and B change their class to "activated".
By clicking on B again, only A remains with the class "active".
By clicking on A the class "active" gets removed on all paragraphs between A and B (including A and B).
It shouldn't be possible to "deactivate" any paragraph between A and B. The selection between A and B should always be a uninterrupted list of selected paragraphs.
Can anyone give me a hint on how to realize this with Prototype/Scriptaculous? The application is implemented in Rails, so any hint in RJS would even be more appreciated!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
好的,与此同时,在同事的帮助下,我对这个问题提出了自己的答案:
每次加载页面(或者在我的情况下是某个部分)时都会调用
class_flipper_init()
。请毫不犹豫地提交用“纯”RJS 或更优雅的东西编写的解决方案。 :-)
OK, in the meantime and with the help of a coworker I came up with an own answer to this problem:
class_flipper_init()
is called everytime the page (or in my case a certain partial) is loaded.Please don't hesitate to submit a solution written in "pure" RJS or something more elegant. :-)
假设你的段落位于一个名为“info”的包装 div 中:(我还没有测试过,但它会是这样的)
Assuming your paragraphs are in a wrapper div called 'info': (I haven't tested it, but it would be something like this)
尝试这个
Try this
我已经测试了下面的代码,它可以满足您的要求,尽管它有点复杂。 它的关键是将段落保存在一个数组中,这是使用 Prototype 的 $$ 实现的 函数。
I've tested the code below and it does what you want, although it's a bit convoluted. The key to it is holding the paragraphs in an array, which is achieved using Prototype's $$ function.