не может принять селектор jquery из управляемого компонента jsf2 primefaces

Я хочу выполнить jquery из управляемого компонента, но у меня есть проблема с селектором:

Uncaught Error: Syntax error, unrecognized expression: unsupported pseudo: lesarticles 

вот код управляемого компонента:

RequestContext.getCurrentInstance().execute("$('#tabView\\:lesarticles').children().find('table tbody tr td div').css('display', 'none');");

а вот и дерево компонентов

<p:tabView id="tabView">
<p:tab>
<p:datatable id="lesarticles">......

и когда я бегу:

RequestContext.getCurrentInstance().execute("$('#tabView:lesarticles').children().find('table tbody tr td div').css('display', 'none');");

у меня тоже ошибка

как я могу это решить

Спасибо


person begiPass    schedule 08.05.2013    source источник


Ответы (2)


Чтобы свести к минимуму проблемы с выходом, просто выполните

RequestContext.getCurrentInstance().execute("easyNameFunc();");

и в вашем js создать

function easyNameFunc(){
    $('#tabView\\:lesarticles').children().find('table tbody tr td div').css('display', 'none');
}

Таким образом, вы можете лучше отлаживать и иметь меньше подводных камней.

person Daniel    schedule 08.05.2013

Чтобы правильно избежать двоеточия в идентификаторе (для селектора jQuery), мне потребовалось 4 обратной косой черты. Я боролся с этим много часов, может быть, это поможет кому-то еще. Если вы посмотрите на то, что на самом деле отправлено в браузер в Firebug, 2 обратных слэша станут только одним, и вы получите сообщение об ошибке.
изменить:

RequestContext.getCurrentInstance().execute("$('#tabView\\:lesarticles').children().find('table tbody tr td div').css('display', 'none');");

to:

RequestContext.getCurrentInstance().execute("$('#tabView\\\\:lesarticles').children().find('table tbody tr td div').css('display', 'none');");

Это, по крайней мере, избавит вас от ошибки.

person varosi    schedule 15.09.2014