11

Jquery関数に値を渡したい。以下はJavascriptのサンプルコードです。このjavascript関数をjquery関数に変換したいと思います。状態名をjqueryonclick関数に渡すにはどうすればよいですか?

<a onclick="showState('state_name')">ADD STATE </a>

 function showState(state_name){
 openbox_state(state_name);
 }

私を助けてください。

4

5 に答える 5

14

さまざまな状態を追加するための一連のアンカーがあるかどうかは、実際には明確ではありませんか、それとも...?

その場合、次のようにして、各リンクの適切な状態名を記録できます。

<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を配置する場合は、準備ができたハンドラーは必要ありません。)

于 2012-11-15T06:29:37.003 に答える
1

このような:

  $('#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);          
    });
});
于 2012-11-15T06:22:37.677 に答える
1

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);
});
于 2012-11-15T06:28:59.267 に答える
1

あなたはこのようなことをすることができます:

<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()」関数に渡すことができます。:-)

于 2012-11-15T07:29:33.683 に答える
0
<a>Montana</a>

$('a').on('click', function(){
     var state = this.text ;   // OR $(this).text();   OR   $(this).html();
     showState(state);
});
于 2012-11-15T06:28:16.370 に答える