【问题标题】:toggle image src切换图像源
【发布时间】:2012-01-21 02:08:15
【问题描述】:

使用其他功能点击HREF时需要改变图片背景

<a href="#" id="showbilled_account">
    <img alt="" src="images/btn_showBillAccounts.gif" id="showBillAccounts" />
</a> 

还有其他一些切换按钮正在使用相同的按钮。所有功能都运行良好。 不幸的是,我必须单击两次才能更改图像 src

这是我的脚本代码

$(document).ready(function() {
        var valueTextbox = $("#FilterTextBox").val();
        $('#tbl_container tbody tr:not(:contains("' + valueTextbox + '"))').hide();
        $('#tbl_container tbody tr:contains("' + valueTextbox + '")').show();
        $(".pagination").hide();
        $(".searchresult.spacetop").hide();
        $(".exp_coll_wrap_alone").hide();

    $("#showbilled_account").click(function() { 
        var valueTextbox = $("#FilterTextBox").val();
        $('#tbl_container tbody tr:contains("' + valueTextbox + '")').toggle();
        $('#tbl_container tbody tr:contains("")').toggle(); 
        $(".pagination").toggle();
        $(".exp_coll_wrap_alone").toggle();

        $(function(){
            $('#showbilled_account').toggle(function(){
             $('#showBillAccounts').attr("src","images/btn_hideBillingAccounts.gif" );
            },function(){
              $('#showBillAccounts').attr("src", "images/btn_showBillAccounts.gif" );
            });
        });
 });

});

提前致谢

【问题讨论】:

  • 你考虑过使用类和 CSS 背景图片吗?
  • @Jørgen 让我试着这样想。感谢您的建议

标签: javascript ajax jquery-ui jquery


【解决方案1】:

我更喜欢为元素使用背景图像并在点击时切换类:

<a href="#" id="showbilled_account" class="showBillingAccounts"></a>

请注意,我已经删除了 img 标签,并且锚点基本上没有内容。通过指定 a 的高度和宽度,您将拥有一个按钮。

$('#showbilled_account').click(function(){
  toggleClass('showBillingAccounts', 'hideBillingAccounts');
}

CSS:

.showBillingAccounts{ background-image : url("images/btn_showBillAccounts.gif"); }
.hideBillingAccounts{ background-image : url("images/btn_hideBillAccounts.gif"); }
#showbilled_account{ height: 100px; width: 100px; padding: 0 }

这样可以使 HTML 在语义上更正确,并且更易于维护。 请注意,#showbilled_account 项目的大小应适合图像的大小。

【讨论】:

  • 用作图像背景时。问题是使用 无法在 css 中不提及宽度和高度的情况下显示图像:(
  • 如果使用 CSS,则不需要 img 标签。您是否需要缩放图像客户端以使其适合?如果您可以避免这种情况,您应该自己缩放图像,使它们适合您的设计。
【解决方案2】:

你也可以这样做,通过改变这个

$(function(){
   $('#showbilled_account').toggle(function(){
     $('#showBillAccounts').attr("src","images/btn_hideBillingAccounts.gif" );
   },function(){
        $('#showBillAccounts').attr("src", "images/btn_showBillAccounts.gif" );
     });
});

到这里

      var mSrc = ($(#showBillAccounts).attr("src") === "images/btn_hideBillingAccounts.gif") ? "images/btn_showBillAccounts.gif" : "images/btn_hideBillingAccounts.gif";
      $(#showBillAccounts).attr("src", mSrc);

【讨论】:

    【解决方案3】:

    你可以使用if语句

    if( $("#showBillAccounts").attr("src") == "images/btn_hideBillingAccounts.gif" ) {
      $('#showBillAccounts').attr("src", "images/btn_showBillAccounts.gif" );
    } else {
    $('#showBillAccounts').attr("src","images/btn_hideBillingAccounts.gif" );
    } });
    

    喜欢这个

    $(document).ready(function() {
            var valueTextbox = $("#FilterTextBox").val();
            $('#tbl_container tbody tr:not(:contains("' + valueTextbox + '"))').hide();
            $('#tbl_container tbody tr:contains("' + valueTextbox + '")').show();
            $(".pagination").hide();
            $(".searchresult.spacetop").hide();
            $(".exp_coll_wrap_alone").hide();
    
        $("#showbilled_account").click(function() { 
            var valueTextbox = $("#FilterTextBox").val();
            $('#tbl_container tbody tr:contains("' + valueTextbox + '")').toggle();
            $('#tbl_container tbody tr:contains("")').toggle(); 
            $(".pagination").toggle();
            $(".exp_coll_wrap_alone").toggle();
    
            if( $("#showBillAccounts").attr("src") == "images/btn_hideBillingAccounts.gif" ) {
                $('#showBillAccounts').attr("src", "images/btn_showBillAccounts.gif" );
            } else {
                $('#showBillAccounts').attr("src","images/btn_hideBillingAccounts.gif" );
            } });
    
    });
    

    【讨论】:

    • 感谢您的帮助。所以这段代码需要css ;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-20
    • 1970-01-01
    • 2020-09-05
    • 2020-10-01
    • 2011-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多