使用jQuery .html()切换SVG

时间:2017-04-13 13:24:34

标签: jquery svg toggle

我正试图在点击时切换两个svg:

$('.close').html() == '<svg class="btn_back"><use xlink:href="#btn_back"></use></svg>' ? $(this).html('<svg class="btn_i"><use xlink:href="#btn_i"></use></svg>') : $(this).html('<svg class="btn_back"><use xlink:href="#btn_back"></use></svg>');

html是:

<div class="back"><svg class="btn_i"><use xlink:href="#btn_i"></use></svg></div>
第一次点击时,

替换内容并正确显示btn_back svg。当我第二次点击.close svg没有改变时。

.html()错误的工具吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我就是这样做的:

我在其上切换课程。基于此,我切换HTML,这比进行字符串比较要快。此外,$(document).on('click','.close', function(e){ var close = $(e.target).closest('.close'); close.toggleClass('on'); close.html(close.hasClass('on') ? '<svg class="btn_i"><use xlink:href="#btn_i"></use></svg>', '<svg class="btn_back"><use xlink:href="#btn_back"></use></svg>' ); }) 并不总是返回一个字符串,所以我认为你这样更安全。可能不完美,但比你的方法好一点。

add_action( 'woocommerce_before_calculate_totals', 'add_custom_price',1000 );
function add_custom_price( $cart_object ) {
    foreach ( $cart_object->cart_contents as $key => $value ) {
        //$value['data']->{'data:protected'}->price = str_replace( ',', '', $result->due );
        $value['data']->price = 123;
    }
}