Jquery関数に値を渡したい。以下はJavascriptのサンプルコードです。このjavascript関数をjquery関数に変換したいと思います。状態名をjqueryonclick関数に渡すにはどうすればよいですか?
<a onclick="showState('state_name')">ADD STATE </a>
function showState(state_name){
openbox_state(state_name);
}
私を助けてください。
さまざまな状態を追加するための一連のアンカーがあるかどうかは、実際には明確ではありませんか、それとも...?
その場合、次のようにして、各リンクの適切な状態名を記録できます。
<a data-stateName="state_name">ADD STATE </a>
そして、JSでは、jQueryを使用します。
$(document).ready(function() {
$("a[data-stateName]").click(function() {
openbox_state( $(this).attr("data-stateName") );
});
});
これにより、HTMLからインラインJavaScriptが削除され、jQueryを使用して、属性<a>
を持つ要素にのみクリックハンドラーがバインドされます。data-stateName
次に、ハンドラーはその属性の値を取得してopenbox_state()
関数に渡します。
ドキュメントレディハンドラーは、ドキュメントが実際にレディになるまで、つまり要素が解析されてJSからアクセスできるようになるまで、アンカークリックバインディングが発生しないようにします。(body要素の最後にあるスクリプトブロックにJSを配置する場合は、準備ができたハンドラーは必要ありません。)
このような:
$('#MyID').click(function () {
var StateName = $(this).text();
showState(StateName);
});
そして、HTMLの場合、次のようなIDを入力できます。
<a id="MyID">ADD STATE </a>
または、多くの状態がある場合(これは、あなたがやろうとしていることだと思います)、次のようにCSSクラスでリンクを参照できます。
<a class="StateSelector">ADD STATE </a>
そして、jqueryコードは次のようになります。
$('.StateSelector').click(function () {
var StateName = $(this).text();
showState(StateName);
});
イベント処理を接続するには、次のようにjqueryコードをdocumentready関数に配置します。
$(document).ready(function() {
$('.StateSelector').click(function () {
var StateName = $(this).text();
showState(StateName);
});
});
a
このように引数が異なる複数の場合。
<a onclick="showState('Delhi')">ADD STATE</a>
<a onclick="showState('Punjab')">ADD STATE</a>
<a onclick="showState('Gujrat')">ADD STATE</a>
function showState(state_name){
openbox_state(state_name);
}
次に、このようなカスタム属性を使用できます
<a state="Delhi">ADD STATE</a>
<a state="Punjab">ADD STATE</a>
<a state="Gujrat">ADD STATE</a>
$('a').click(function () {
var StateName = $(this).attr("state");
openbox_state(StateName);
});
あなたはこのようなことをすることができます:
<a onclick="showState()" id="florida">ADD STATE </a>
function showState(state_name){
var state_name = $(this).attr('id')
openbox_state(state_name);
}
この関数は、リンクから「id」値を取得します。次に、値を「openbox_state()」関数に渡すことができます。:-)
<a>Montana</a>
$('a').on('click', function(){
var state = this.text ; // OR $(this).text(); OR $(this).html();
showState(state);
});