首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选中复选框时取消绑定链接

选中复选框时取消绑定链接
EN

Stack Overflow用户
提问于 2016-02-16 15:02:00
回答 3查看 514关注 0票数 0

我有很多复选框和链接。如果选中复选框,我希望激活链接。

代码语言:javascript
复制
$("a[id^='link-'], a.disabled").unbind("click");
$('#alljc').on("change", ":checkbox", function () {
    if (this.checked) {
        $('#link-'+this.id).bind('click');
    } else {
        $('#link-'+this.id).unbind('click');
    } 
});

Html示例:

代码语言:javascript
复制
<div id="alljc">
    <form class="text-center" action="#">
        <input type="checkbox" id="6" />
        <a id="link-6" href="i-aggre.php?id=6">i m ok</a>
    </form>
    ...
</div>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-02-16 15:11:52

正如我在上面的评论中指出的,我认为您不能也不应该走.bind()/.unbind() (或.on()/.off())路由。相反,试着:

代码语言:javascript
复制
$('#alljc a').click(function(e) {
    if ($(this).prev('input').is(':not(:checked)')) e.preventDefault()
})

jsFiddle实例

票数 0
EN

Stack Overflow用户

发布于 2016-02-16 15:06:05

unbind可以解除指定的单击处理程序的绑定,它不会为本机功能做任何事情。最好的选择是切换href属性(为方便起见,将href存储在data-* attr中)

代码语言:javascript
复制
<a id="link-6" data-target="i-aggre.php?id=6" href="i-aggre.php?id=6">i m ok</a>

联合来文:

代码语言:javascript
复制
$('#alljc').on("change", ":checkbox", function () {
    if (this.checked) {
        var href = $(this).data("target");
        $('#link-'+this.id).attr('href', href);
    } else {
        $('#link-'+this.id).attr('href', '');
    } 
});
票数 0
EN

Stack Overflow用户

发布于 2016-02-16 15:18:41

尝试usind preventDefault()off()检查我的演示Fiddle

代码语言:javascript
复制
$("a[id^='link-'], a.disabled").on('click',function(e){
    e.preventDefault();
});

$('#alljc').on("change", ":checkbox", function(){
    var actId=$(this).attr('id');
    if ($(this).is(':checked')) {
        $('a#link-'+actId).off('click');
    } else {
       $('a#link-'+actId).on('click',function(e){
           e.preventDefault();
       })
    } 
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35435886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档