2012-03-06 46 views
0

我想使新闻项目,就像博客文章,我用PHP获取新闻项目,我想限制新闻和节目的字符数阅读更多链接。当用户点击阅读更多时,它应显示所有内容和隐藏按钮。当用户点击隐藏时,它应该隐藏内容并显示原始状态。 我遇到的问题是,当我点击阅读更多的新闻时,它会在其他文章项目上创建隐藏链接,并在其他新闻中显示内容。阅读更多按钮问题的新闻部分与jquery

我已将我的解决方案发布在小提琴上,因为有许多代码行。如果我没有提供所有的代码,请告诉,因为这是我在小提琴上的第一篇文章。 http://jsfiddle.net/wqXPg

回答

1

的插件,你的一些地区使用find()方法,以保持个人新闻模块内的范围,别人对你正在使用一类就是在页面

最好的例子就是你的整个集合从底部的一个循环开始调用init(),并将每个元素作为参数传递给init(),但是它不会被使用,并且将clcik处理函数绑定到页中的所有页面

更多此类上下文会有帮助。注意p.find()

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,我会检查这些out..but我没有试图让一个插件 – Mythriel 2012-03-08 10:53:11

+0

@Mythriel这很有意思,我以为这是一个插件,因为你对待它类似于一个插件,以设置和所有的爵士乐。在任何情况下,你都可以移除插件并在文档加载时执行它,如果你没有插件,没有理由将你的代码包装在一个充满了函数属性的对象中。 – ShadowScripter 2012-03-08 11:04:48

+0

我对JS很新,我有一个完整的OOP语言的背景,并且我在看了一些内容之后就开始构建我的代码。无论如何,将其作为插件并不是一个坏主意。我喜欢你是如何做到的。 – Mythriel 2012-03-08 11:09:27