2016-05-21 9 views
1

onClickイベントを持つボタンにクラスを追加しようとしています。 onClickイベントにより、ユーザにボックスのチェックを指示するポップアップalertがトリガされます。このチェックボックスをオンにしたら、それはonClickが無効になります。onClickが無効になっている$("#continue").prop('onclick',null).off('click');たら、私はそれがクリックされたら、ボタンにclassを追加したい:jQuery - onClickイベントを持つボタンにクラスを追加できません

//Updated JS 
jQuery(function($) { 
if ($("#continue").hasClass("selected")) { 
    $(this).addClass('active'); 
} 
$('#button').click(function(){ 
    $("#continue").addClass('selected'); 
    $("#continue").prop('onclick',null).off('click'); 
}); 
}); 

//Button HTML 
<a id="button" href="javascript:void(0)">Pick me</a> 
<a id="continue" href="javascript:void(0)" onclick="showError()">Continue</a> 

しかし、無classが追加されます。何が起こっているかわからない。

答えて

2

たぶん、あなたは、要素は、このような必要なクラスを持っているかどうかを検証する機能を起動することができます

function validate(element) { 
 
    if ($(element).hasClass('selected')) { 
 
    $(element).addClass('active'); 
 
    } else  { 
 
    alert("this is an error"); 
 
    } 
 
} 
 

 
$(function() { 
 
    $('#button').click(function() { 
 
    $("#continue").addClass('selected'); 
 
    }); 
 

 
});
.selected { 
 
    color: red; 
 
} 
 
.active { 
 
    color: green; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<a id="button" href="javascript:;">Pick me</a> 
 
<a id="continue" href="javascript:;" onclick="validate(this)">Continue</a>

+0

参照の$(this)を書く必要があります更新された質問。私が持っているものを正確に加えました – Garrettj944

+0

すべてのコードでスニペットを挿入してください。アラートや小道具などは、ユーザーが警告を解除するまでjavascriptの実行を停止することに注意してください。 – Alfredo

+0

ここに私のコードhttp://pastebin.com/s5mKxTaAそれは普通の警告ではない、そのカスタム1 – Garrettj944

1

あなたが代わりに$この

$('#button').click(function(){ 
    $this.addClass("active"); 
}); 
+0

括弧で 'this'をラップすると機能しました。 '$(this).addClass( 'active')' – protoEvangelion

関連する問題