11

我想将值传递给 Jquery 函数。下面是 Javascript 示例代码。我想将此 javascript 函数转换为 jquery 函数。如何将状态名称传递给 jquery onclick 函数?

<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 访问之后。(如果将 JS 放在 body 元素末尾的脚本块中,则不需要准备好的处理程序。)

于 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 代码放在文档就绪函数中,如下所示:

$(document).ready(function() {

    $('.StateSelector').click(function () {

          var StateName = $(this).text();
          showState(StateName);          
    });
});
于 2012-11-15T06:22:37.677 回答
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 回答
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 回答
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 回答