0

我正在尝试创建一个包含新闻项目的页面,就像博客文章一样,我使用 php 获取新闻项目,我想限制新闻的字符数并显示阅读更多链接。当用户单击阅读更多时,它应该显示所有内容和一个隐藏按钮。当用户单击隐藏时,它应该隐藏内容并显示原始状态。我遇到的问题是,当我在新闻项目上单击“阅读更多”时,它会在其他帖子项目上创建隐藏链接,并在其他新闻上显示内容。

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

4

2 回答 2

1

创建插件时,您应该遵循JQuery 团队制定的指南

在一个明确的范围内,例如在一个明确定义的函数内,维护、检查和理解代码要容易得多。在函数周围“跳跃”并随处传递参数是混乱的,并且可能导致意大利面条式代码。

如果你能掌握scope 的概念,以及如何构建一个插件,那就容易多了。

我做了这个例子,你可以学习和学习。

于 2012-03-07T19:04:22.347 回答
1

在插件的某些区域中,您使用 find() 方法来保持单个新闻模块内的范围,而在其他区域中,您正在使用页面中类的整个集合

完美的例子是你从底部的一个循环开始调用 init() 并将每个元素作为参数传递给 init() 但是它没有被使用并且你将 clcik 处理程序绑定到每个a.readmore页面

更多这种背景会有所帮助。注意 p.find()

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

还要仔细查看您对news.container. 它是页面中具有该类的每个容器

于 2012-03-06T18:19:00.827 回答