2

入力領域内をクリックすると送信ボタンを表示するスクリプトを作成しました。また、入力の外側をクリックすると、ボタンが非表示になります。いくつかのエリアとボタンがあるので、すべてのボタンとエリアに一意のIDを割り当てました。

問題は次のとおりです。領域をクリックすると、ボタンが表示されます。しかし、外側をクリックしても何も起こりません。ボタンと領域が1つしかない場合、スクリプトは機能しますが、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にあるすべてのボタンを探して非表示にします。これにより、追跡する必要がなくなります。ID内に非表示にしたくない他のボタンがある場合は、クラスに基づいて選択するか、ID形式を変更する必要があります。submitidcidsubmit

于 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 に答える