0

私のプログラムでは、ユーザーが項目をドラッグ アンド ドロップできるように、「validDrop」と呼ばれる領域が強調表示されています。

ボタン「ミニボタン」をクリックすると、新しい領域が強調表示されます。

現在の領域 (validDrop) が「wordglow2」と「wordglow4」でスタイル設定されている場合にのみ、ボタンのクリックを許可するようにプログラムに指示したいと考えています。

私はこれを試しましたが、なぜうまくいかないのですか?

if ($(validDrop).hasClass('wordglow2', 'wordglow4')) {
    $('.minibutton').click(true);
} else {
    $('.minibutton').click(false);
}
4

2 に答える 2

3

hasClassは複数のパラメーターを使用せず.click、クリックをトリガーするかクリック リスナーをバインドするため、クリック可能性を設定しません。

内容に応じて.minibutton、次のようなことができます。

var valid = $(validDrop).hasClass('wordglow2') && $(validDrop).hasClass('wordglow4')
$('.minibutton').prop('disabled', !valid);

無効にできるタイプでない場合は、次のように考えることができます。

$('.minibutton').toggleClass('disabled', !valid);

クリック リスナーを次のようにバインドします。

$(document).on('click', '.minibutton:not(.disabled)', function() {
    // click action here
});

ThiefMaster がコメントで指摘している$(validDrop).is('.wordglow2.wordglow4')ように、ドロップに両方のクラスがあることを確認する機能的に同等の方法です。

于 2012-08-08T11:11:21.703 に答える
1

また、私の例http://jsfiddle.net/Uz6Ej/のように、クリックイベントをボタンに追加および削除するために.bind()使用することもできます。.unbind()

于 2012-08-08T11:21:21.737 に答える