2017-04-05 64 views
0

我想从点击函数发送多个数据到像这样的代码的jquery函数。从onclick函数发送多个值到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>

我该怎么办呢?

+1

要绑定两个click事件侦听器!一个使用'.click()',另一个使用'onclick'属性! –

+1

您正在注册2个事件侦听器,如果您将元素的“id”事件绑定,则从HTML传递数据没有意义。 'id'必须是唯一的,所以你不妨将数据编码到函数中。 – Cerbrus

+0

您添加的JavaScript侦听器有什么问题?为什么你还需要一个jQuery? – ControlAltDel

回答

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> 
+0

helllo word not fixed value – mody

+0

@mody你可以解释一下那些值是什么,然后是jquery真正neccesary,因为JavaScript可能是一个简单的解决方案 –

+0

我有两个内部函数按钮(显示在我的问题)价值..当我clcik在按钮我想要的值发送到jquery函数..我有另一个代码来使用这些两个值,但我只使用警报例如 – mody

1

下面的代码应该做的伎俩:

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

返回FALSE;是为了防止默认操作。

+1

不,现在您将'myf('hello','word')'的结果传递给'.on'。这就像'$(“#button”)。on(“click”,false);' – Cerbrus

+0

不,我想从onclick发送到jquery并且不固定值 – mody

+0

编辑我的答案,仍然有任何问题吗? –

2

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

您正在将该功能绑定到按钮的id。那id必须是唯一的,所以只有这种值的单一组合。

只要使用此:

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

或者,如果你想从HTML发送数据,你将不得不做这样的事情:

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

或者,如果你想使用jQuery,你将不得不做一些令人费解这样的:

$("#button").click(function() { 
 
    var data = $(this).data('params').split(','); 
 
    alert(data[0] + data[1]); 
 
});
<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>

+0

我的价值不固定我有很多按钮,每个有价值 – mody

+0

@mody - 你的建筑按钮动态? – K7Buoy

+0

我想用jquery – mody

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/

+0

我知道这个先生..我想与jquery – mody

+0

@mody添加jquery的问。 – Ecstabis

+0

你好单词不固定值它改变..我想从按钮功能发送数据到jqure和jquery显示它 – mody