2013-05-08 52 views
2

我想從託管bean執行jQuery的,但我有這個問題wtih選擇:不能接受來自託管bean JSF2 primefaces jQuery選擇

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

這裏是託管bean代碼:

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');"); 

我還錯誤

我怎麼能解決

謝謝

回答

2

爲了儘量減少逃避問題只是做

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

,並在你的js創建

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

這樣,你可以做一個更好的調試,並有較少的缺陷

1

要正確逃生的ID冒號(jQuery的選擇器)需要4個反斜線我。我掙扎了好幾個小時,也許這會幫助別人。如果您查看Firebug中實際發送給瀏覽器的內容,則2個反斜槓將變爲只有一個反斜槓,您會看到該錯誤。
變化:

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

到:

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

這將至少讓你過去的錯誤。