2015-01-30 3 views
-1

Я пробовал использовать два плагина с плавающей точкой, один из них найден here: другой, here. Используя первый перечисленный плагин рейтинга, когда я наводил указатель мыши на звезды, они вообще не работают (это означает, что цвет выбранных звезд не изменяется), в то время как в петле KnockoutJS, если снаружи, он отлично работает. Пример код:Плагин оценки JQuery не работает на петле KO

<ul data-bind="foreach: articles">  
    <li> 
     <input type="radio" name="1" class="star" /> 
     <input type="radio" name="1" class="star" /> 
     <input type="radio" name="1" class="star" /> 
     <input type="radio" name="1" class="star" /> 
     <input type="radio" name="1" class="star" /> 

     <script type="text/javascript"> 
      $(function(){ // wait for document to load 
       $('input.star').rating(); 
      });     
     </script> 
    </li> 
</ul> 
<!-- Works --> 

Мой CSS настройка и я даже пытался переместить сценарий активации плагина внутри/вне цикла, и ничего.

EDIT Я думаю, вопрос будет, как я мог повторно применить плагин KnockoutJS после того, как новый контент генерируется?

+0

ваш цикл выполняется после того, как JQuery готов ... так что первая часть вашего сценария уже вызвала, и это было все людям .... вам нужно переместить JS после цикла заставит вас сделать то же самое для каждой итерации. .. – HellBaby

+0

Ваша проблема, вероятно, в том, что вы выбираете все 'input' с классом' star', который после последнего цикла 'foreach' является * all * входов, добавленных в цикл. Вам нужно ограничить его только одним для каждой статьи. Способ сделать это - это, вероятно, выбрать 'li's, а затем для каждого из них выбрать группу переключателей под ним и называть« рейтинг »на них. –

+0

@HellBaby Я попытался переместить js в несколько частей документа, внутри и снаружи цикла, вне 'li' и т. Д. То же самое. – user3704920

ответ

0

Проблема заключается в том, что плагин работает до того, как элементы отображаются на странице KnockoutJS. Способ исправить это, как я нашел, - это проверить, когда элементы установлены, а затем снова подключить плагин.

Это должно быть добавлено в цикл.

foreach: { data: articles, afterRender: rating_bind } //rating_bind is the function that will map the plugin to the new elements. 

 Смежные вопросы

  • Нет связанных вопросов^_^