2012-03-06 9 views
0

Я пытаюсь создать страницу с новостями, как и сообщения в блогах, и я получаю новости с помощью php, и я хочу ограничить количество символов для новостей и показать больше. ссылка. Когда пользователь нажимает больше читать, он должен отображать все содержимое и кнопку скрыть. Когда пользователь нажимает кнопку «Скрыть», он должен скрывать содержимое и отображать исходное состояние. Проблема, с которой я сталкиваюсь, - это когда я нажимаю больше на новостях, он создает скрытые ссылки на другие сообщения, а также показывает контент в других новостях.Подробнее о проблемах с кнопками для раздела новостей с jquery

Я разместил свое решение на Fiddle, так как есть много строк кода. Если я не предоставил весь код, скажите, потому что это мой первый пост на Fiddle. http://jsfiddle.net/wqXPg

ответ

1

В некоторых областях плагин, что вы используете найти() метод, чтобы сохранить объем в пределах отдельного модуля новостей, другие вы используете целую коллекцию класса, который находится на странице

Прекрасный пример вам начните с петли в нижней части вызова 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. Каждый контейнер на странице с этим классом

1

При создании плагина вы должны следовать за guidelines that the JQuery team has set up.

Это намного проще в обслуживании, проверке и понимании кода в ясном объеме, например, в пределах одной четко определенной функции. «Прыжки» вокруг функций и прохождения по параметрам повсюду грязны и могут привести к коду спагетти.

Если вы можете понять concept of scope и как построить плагин, это будет намного проще.

Я сделал this example, на котором вы можете учиться и учиться.

+0

thx, я проверю их ... но я не пытался сделать плагин – Mythriel

+0

@Mythriel Это интересно, я предположил, что это плагин, потому что вы относились к нему аналогично плагину, с настройками и всем этим джазом. В любом случае вы можете удалить часть плагина и просто выполнить ее при загрузке документа, нет никакой причины для того, чтобы обернуть свой код внутри объекта, заполненного свойствами функции, если вы не создаете плагин. – ShadowScripter

+0

Я довольно новичок в JS, у меня есть фон с полными языками ООП, и я начал структурировать свой код таким образом после просмотра некоторых ссылок. В любом случае, сделать это плагином - неплохая идея. Мне нравится, как ты это сделал. – Mythriel