我想向JQUERY事件函数发送多个参数。为了发送一个数据,我把它放在html代码中的值attr中。
<li id="<?php echo 'v'.$value['vehicleid'] ?>" value="<?php echo $value['vehicleid']; ?>" >
使用$(this).val()
在JQuery事件函数中获取数据但是我不知道如何将多个php数据传递给JQuery事件函数!
这些数据是动态的,由php代码生成。
答案 0 :(得分:1)
前几天我遇到过类似的东西。
尝试使用html5自定义数据属性。
John Resig(jquery和普通javascript忍者之王)首先发布了它here。
所以:
<li id="vehicle<?php echo 'v'.$value['vehicleid'] ?>" data-vehicle="<?php echo $value['vehicleid']; ?>" >
然后使用jquery .data函数访问它。见http://api.jquery.com/data/。
如果您要添加大量数据,我建议您使用对象文字
{ vehicleId: <?php echo 'v'.$value['vehicleid'] ?>,
vehicleName: <?php echo 'v'.$value['vehicleName'] ?>}
就像在jquery网站上的例子一样。
答案 1 :(得分:0)
我不是百分之百确定您与哪种事件有关。但是你可以在函数内传递多个参数(.. HERE ..)。它应该用逗号分隔。就像这样。
$('selector').change(function(arg1,arg2,arg3){
alert(arg1+arg2+arg3);
});
在这个例子中,我正在为选择器'selector'使用change事件。
答案 2 :(得分:0)
你不能在li
上使用val()它应该在表单元素上使用,例如输入有一个名为value
的有效属性
对于li,您可以使用数据属性
<li id="<?php echo 'v'.$value['vehicleid'] ?>" data-vehicleid="<?php echo $value['vehicleid']; ?>" >
并使用:
var vehicleId = $(this).data('vehicleid');
要传递多个数据,您可以使用“ - ”之类的字符分隔每个ID:
<li id="<?php echo 'v'.$value['vehicleid'] ?>" data-vehicleids="<?php echo $value['vehicleid1']. '-' .$value['vehicleid2']; ?>" >
应该产生类似的东西:
<li id="1234" data-vehicleids="1234-3456-5678" >
然后做
var vehicleIdsArray = $(this).data('vehicleids').split('-');
确保用于分离的charachter不用于车辆ID
这可以帮到你:
<ul id="list">
<li data-vehicleid="1234" data-vehiclename="renault" data-vehicle-color="silver">Renault</li>
</ul>
$(document).ready(function(){
$('ul#list li').click(function(e){
var vehicleId = $(this).attr('vehicleid');
var vehicleName = $(this).attr('vehiclename');
var vehicleColor = $(this).attr('vehiclecolor');
return false;
});
});
来自Resig的报价:
我认为对整个规范最有吸引力的是 您不必等待任何浏览器按顺序执行任何操作 开始使用它。开始在HTML上使用数据前缀 今天的元数据,你知道它将继续工作是安全的 走向未来。 HTML 5验证器的时间 集成到您的站点已经存在的完整W3C验证器中 兼容(假设,当然,你已经有效的HTML 5并使用 HTML 5 Doctype)。
答案 3 :(得分:0)
我认为你必须创建一个处理事件的函数
function handleEvent(data-vehicleid,data-vehiclename,data-vehiclename)
{
alert(data-vehicleid + data-vehiclename + data-vehiclename);
}
然后你的李,
<li onmouseover="handleEvent(<?php echo $variable1;?>,<?php echo $variable2;?>,<?php echo $variable3;?>)">Renault</li>