2

私はこのhtml要素を持っています:

<div class="s_right hide_text"><a class="crackable" href="#">next</a></div>

しばらくの間、この要素のクリック アクションを無効にする必要があり、次のようにします。

$.fn.disableFor = function (time) {
    var el = this, qname = 'disqueue';
    el.queue(qname, function () {
        el.attr('disabled', 'disabled');
        setTimeout( function () {
            el.dequeue(qname);
        }, time);
    })
    .queue(qname, function () {
        el.removeAttr('disabled');
    })
    .dequeue(qname);
};

var settings_rc_right = $('.s_right a');

settings_rc_right.on('click', function(){
    $(this).disableFor(2000);
    // actions
});

理由はわかりませんが、これはまだ機能します。1 つずつすばやくクリックして、通話アクションをクリックできます。誰でもこれで私を助けることができますか? これをフィドル

4

2 に答える 2

5

<input><textarea><select>およびその他のフォーム ウィジェットのみが無効化をサポートします。他の要素については、無効な css クラスを追加できます。

<a>別の方法で処理する必要があります。何もしないクリック ハンドラーを割り当てることができます。

$("a").click(function(){ return false; });

.prop()また、の代わりに使用する必要があります.attr().prop() と .attr()を参照してください。

于 2013-02-01T15:31:49.173 に答える
1

a次のように適用する必要があります。

$("a").on("click," function(){ return !1; });
// or
$("a").on("mousedown" function(){ return !1; });
于 2013-02-01T16:03:52.873 に答える