2

我编写了一个脚本,在输入区域内单击时显示提交按钮。在输入外部单击时,该按钮应被隐藏。有几个区域和按钮,因此我为每个按钮和区域分配了一个唯一的 ID。

问题是:当我单击该区域时,会显示该按钮。但是当点击外面时,什么也没有发生。如果我只有一个按钮和区域,该脚本就可以工作,但是在分配 ID 时,它会停止工作......

$(".textarea").click(function(e) {
    var cid = $(this).attr('rel');

    $("#submit" + cid).show();
    e.stopPropagation();
});

$(document).click(function() {
    $("#submit" + cid).hide();
});
4

2 回答 2

4

该变量cid在匿名文本区域单击处理程序中声明。因此,当另一个函数由于单击而被调用时,它没有值。

将您的隐藏功能更改为独立于cid这样的东西

$(document).click(function() {
    $("button[id*=submit]").hide();
});

id*=submit部分将查找所有按钮并隐藏它们submitid这将规避跟踪的需要cid。如果您在 id 中有其他submit不想隐藏的按钮,则需要基于类进行选择或更改 id 格式。

于 2013-02-25T13:25:29.440 回答
1
$(".textarea").click(function(e) {
    var cid = $(this).attr('rel');

    $("#submit" + cid).show();
    e.stopPropagation();
});

$(document).click(function() {
    //add logic to hide all submit buttons by assigning common class to all
});
于 2013-02-25T13:08:11.687 回答