繁体   English   中英

添加侦听器以更改内容

[英]Add listener to span content change

我有一个简短的代码段,每次使用ul (出于CSS用途)制作的下拉菜单更改其值时,我都希望运行该代码段。

<span class="persons">5 personer</span>
<ul class="dropdown">
    <li><a href="#">5 personer</a></li>
    <li><a href="#">6 personer</a></li>
    <li class="goodprice"><a href="#">7 personer (mer prisvärt)</a></li>
    <li><a href="#">8 personer</a></li>
    <li class="goodprice"><a href="#">9 personer (mer prisvärt)</a></li>
    <li><a href="#">10 personer</a></li>
    <li class="goodprice"><a href="#">11 personer (mer prisvärt)</a></li>
</ul>

这是我的jQuery:

var persons = $('.persons').text();

if (persons == "5 personer" || persons == "6 personer" || persons == "7 personer (mer prisvärt)") {
    $('#boattype1').show();
    $('#boattype2').show();
    $('#boattype3').hide();
} else if (persons == "8 personer" || persons == "9 personer (mer prisvärt)") {
    $('#boattype1').show();
    $('#boattype2').hide();
    $('#boattype3').show();
}

所以我需要的是一旦您从ul选择了新内容,就会触发JS代码。 我试图添加$('ul a').click(function() {}); $('span').change(function() {}); 没有任何结果,所以我非常需要您的帮助来解决这个希望很小的问题。

一个span本身没有一个change事件,但是没有什么阻止您手动触发它,然后对该事件的任何订阅都会触发:

$(function(){
    $('.persons').change(function() {
       console.log('span changed to ' + $(this).text());
    });

    $('ul li a').click(function(){
        $('.persons').text($(this).text()).trigger('change');
    });
});

实时示例: http//jsfiddle.net/djB83/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM