2回目のクリックでのみ動作するリンクを(Bootstrapボタンの形で)作成したいと思います。最初のクリックで、その外観を少し変えることになっています。このため私は.addClass(newClass)
,、次にattr("href", newUrl)
を使います。jQuery addClass()もattr( "href"、何か)を使用していると動作しません
(編集)明確にするには:最初に、リンク(アンカー)にはhref
ターゲットとして「#」が付き、onlickハンドラがあります。そのハンドラは、最初のクリックで実行されるとアンカーから削除され、代わりにhref
属性に目的のターゲットURLを設定します。これは、リンクがの第2のクリックでターゲットURLにリダイレクトされることになっています)。attr()
の設定を省略した場合に限り、これはほとんど機能します。そこにあるとき、クラスはスクリプトが終了するとすぐにリンクの古いクラスに戻ります。デバッガでそれをステップ実行すると、リンクは予期したとおりに簡単に外観が変更されますが、イベントハンドラが終了すると元に戻ります。
これは、HTMLコードです:私は非常にJSとjQueryで経験していないよ、それはこれが私の上の愚かな間違いであることを十分に可能だ
function enabletwoclickbutton(btn_id, url) {
var whichbtn = '#' + btn_id;
var btn = $(whichbtn);
if (btn.hasClass("btn-warning")) {
btn.off("click");
btn.attr("href", url);
btn.removeClass('btn-warning');
btn.addClass('btn-danger');
} else {
console.log("Hey, this shouldnt happen.");
}
}
:
<a id="twoclick-vjffkrzw" onclick="enabletwoclickbutton('twoclick-vjffkrzw',
'http://localhost/something.php?cmd=admin&func=userdetail&pk=53&action=removerole&rolepk=1')"
class="btn btn-xs btn-warning" href="#">Remove this</a>
スクリプトしかし、私はそれを見ることができません。
クリックアクションをキャンセルします。 – epascarello