从onclick函数发送多个值到jquery函数

时间:2017-04-05 13:52:31

标签: javascript jquery

我想将点击功能中的多个数据发送到jquery函数,就像这段代码一样。

当我点击我的按钮时,我会在警告框中显示[object Object]undefined]

代码:



$(function() {
  $("#button").click(function myf(data1, data2) {
    alert(data1 + data2);
  });
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#" id="button" onclick="myf('hello','word');">click</a>
&#13;
&#13;
&#13;

我该怎么做?

4 个答案:

答案 0 :(得分:2)

从HTML传递数据绝对没有意义。

您将该功能绑定到按钮的idid 必须是唯一的,因此只有单一的价值组合。

请使用:

&#13;
&#13;
$(function() {
  $("#button").click(function() {
    alert('hello' + 'word');
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#" id="button">click</a>
&#13;
&#13;
&#13;

或者,如果您希望从HTML发送数据,那么您将不得不这样做:

&#13;
&#13;
function mf (data1, data2){
    alert(data1 + data2);
}
&#13;
<a href="#" id="button" onclick="mf('hello','word');">click</a>
&#13;
&#13;
&#13;

或者,如果您希望使用jQuery,那么您将不得不做一些令人费解的事情:

&#13;
&#13;
$("#button").click(function() {
    var data = $(this).data('params').split(',');
    alert(data[0] + data[1]);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#" id="button" data-params='hello,word'>click</a>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

以下代码应该可以解决问题:

&#13;
&#13;
function myf(data1, data2) {
  alert(data1 + data2);
  return false;
}
&#13;
<a id="button" href="#" onclick="myf('hello', 'word');">click me</a>
&#13;
&#13;
&#13;

返回false;是为了防止违约行为。

答案 2 :(得分:1)

您正在使用2个事件,它们都会尝试收听onclick事件 你可以删除其中一个:

<script>
$(function() {
  $("#button").click(function() {
  alert('hello' + 'word');
   });
});
</script>

id始终是唯一的,因此您可以将值直接放入函数中。

如果你真的想使用jquery,你可以使用它:

$("#button").click(function() {
var data = $(this).data('params').split('|');
alert(data[0] + data[1]);
});

这是为了html:

<script 
src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"> 
</script>
<a href="#" id="button" data-params='hello|world'>click</a>

答案 3 :(得分:0)

如上所述,你已经有了一个倾听者,我没有看到添加另一个的意义。

<button onclick="myf('hello','word')">click</button>

<script>
function myf(data1,data2){
  alert(data1+data2);
}
</script>

https://jsfiddle.net/wnd6ovkf/

和jquery版本:

<button data1= "value" data2= "value2" class="btn">click</button>
<button data1= "ohtervalue" data2= "othervalue2" class="btn">click</button>

<script>
$(".btn").click(function() {
  alert(this.getAttribute("data1") + " " + this.getAttribute("data2"));
});
</script>

https://jsfiddle.net/wnd6ovkf/6/