2013-06-05 4 views
1

Может ли кто-нибудь сказать мне что-то полезное для следующего поведения в JSF с компонентом Jscolor?Jscolor перестает работать после первого postback нового развертывания, но продолжает работать после обратной передачи перезагрузки

Я получил этот простой код Xhtml:

<?xml version='1.0' encoding='UTF-8' ?> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml" 
      xmlns:h="http://java.sun.com/jsf/html"> 
     <h:head> 
      <title>RDFa test</title> 
     </h:head> 
     <h:body>  
      <script type="text/javascript" src="resources/js/jscolor/jscolor.js"/> 
      <h:form> 
       <h:commandButton class="color" value="ok"/> 
       <h:commandButton value="server" type="submit" action="#{testBean.tmp}"/> 
      </h:form> 
     </h:body> 
    </html> 

TestBean.java:

@ManagedBean 
@SessionScoped 
public class TestBean implements Serializable { 
    public TestBean() {} 

    public void tmp() { 
     System.out.println("SERVER!"); 
    } 
} 

Если я первый развертывание и нажмите на кнопку "сервер", то Jscolor уйдет и не работает (это похоже на уничтожение javascript на странице)! Если я перезагружу страницу и нажимаю на ту же кнопку, Jscolor работает нормально. В журнале сервера нет исключений, а также ошибок в консоли Firebug JS. Как это вызвано и как я могу его решить?

EDIT: Я не единственный разработчик, который справляется с этой проблемой. Здесь tyhand точно описывает, что я имею в виду: http://www.tek-tips.com/viewthread.cfm?qid=1641380

К сожалению, пожалуйста, объясните мне, что происходит и как его решить?

+0

Нет, я не сделал , Возможно, «ошибка» - это не правильное слово - среда IDE не генерирует никаких исключений, Firebug - ошибка. Проблема в том, что компонент JsColor не работает (в этом примере кнопка команды - это только кнопка без функции - без цвета ...). Есть идеи? –

+0

Хорошо, я задал вопрос. Является ли код до сих пор действительно SSCCE? Разве вы не слишком упростили его, не проверив его? Недопустимый атрибут 'class' (он должен был быть' styleClass') - это хороший намек на то, что этот код не проверен. Я могу распознать и объяснить проблему для кнопок ajax, которые обновляются без повторного выполнения сценария, но кнопка в фрагменте кода не является кнопкой ajax. – BalusC

+0

Спасибо BalusC за исправление вопроса и подсказки. Я заменил недействительный атрибут класса styleClass, но это не решение: теперь это SSCCE, и после первого postback он все еще не работает ... –

ответ

3

Наконец-то я нашел решение. Это так просто! Я должен добавить перед всеми полями ввода с классом = «цвет» (связывание fileds с jscolor) этот код:

<script>jscolor.init();</script> 
+0

У меня была связанная с этим проблема; jscolor не работал после установки '$ ('body'). html (newHtml);'. Я просто решил это, вызывая 'jscolor.init()' впоследствии. Спасибо за подсказку! – Godsmith

+0

Ха-ха, спасибо, что решили! У меня была такая же проблема после функции jQuery.load(). –

0

Я хотел использовать jscolor в ретранслятор, который был внутри панели обновления в пользовательском модуле DNN ,

Ни один из различных решений, которые я видел здесь, не работал ... Я, наконец, понял это.

В верхней части HTML в вашем UserControl: Использование < DNN: DNNJsInclude ...../>, чтобы указать на файл jscolor.js, затем добавьте

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