这是我的按钮"我想将图标更改为"打开"并且"关闭"当它再次点击时
<h:panelGroup layout="block" rendered="#{pesquisa}" style="float:left; padding-top:2px;">
<h:outputLink id="linkToggleControl" value="#">
<rich:toggleControl event="click" targetPanel="painelFiltro" targetItem="#{filtroBean.activeItem eq 'ativo'? 'vazio' : 'ativo'}" />
<h:graphicImage id="imagem-pesquisa" value="/resources/images/interface/pesquisa-barra-expandida.png" style="border:none; cursor:pointer;"/>
<rich:tooltip layout="block" direction="auto">
<h:outputText value="#{msg.acsPesquisar}" />
</rich:tooltip>
</h:outputLink>
</h:panelGroup>
脚本:
<script type="text/javascript">
jQuery(function($) {
$('.linkToggleControl').on({
'click': function() {
var src = ($('#imagem-pesquisa').attr('value') === '/resources/images/interface/pesquisa-barra-expandida.png')
? '/resources/images/interface/pesquisa-barra-expandir.png'
: '/resources/images/interface/pesquisa-barra-expandida.png';
$('#imagem-pesquisa').attr('value', src);
}});
</script>
答案 0 :(得分:1)
我在Jquery中已经多次做过这种事情,所以我知道这是可能的。 我已经看过你的剧本了,我会做一些不同的事情。但是,我不习惯你正在使用的代码。所以我的建议是如何处理HTML4,xHTML,HTML5。
以下是我的方式:
$(function(){
$('body').on('click','.linkToggleControl', function() {
var src = ($('#imagem-pesquisa').attr('value') == '/resources/images/interface/pesquisa-barra-expandida.png')? '/resources/images/interface/pesquisa-barra-expandir.png': '/resources/images/interface/pesquisa-barra-expandida.png';
$('#imagem-pesquisa').attr('src', src);
});
});
在我使用'body'
的地方,我实际上已经使用了.linkToggleControl
答案 1 :(得分:0)
您似乎正在调用“LinkToggleControl”&#39;元素,虽然这是他的id或类,对吧?你应该使用&#39;#&#39;或&#39;。&#39;名字之前的字符叫他们
所以试试这样:
<script type="text/javascript">
jQuery(function($) {
$('.linkToggleControl').on({
'click': function() {
var src = ($('#imagem-pesquisa').attr('value') === '/resources/images/interface/pesquisa-barra-expandida.png')
? '/resources/images/interface/pesquisa-barra-expandir.png'
: '/resources/images/interface/pesquisa-barra-expandida.png';
$(this).attr('value', value);
}
});
</script>
结帐&#39; linkToggleControl&#39;看他的身份或班级,但&#39; imagem-pesquisa&#39;它绝对错过了#&#39;#&#39;在它之前的char
答案 2 :(得分:0)
您正在使用:
$(this).attr('value', value);
不应该是:$(this).attr('value', src);