我想向 JQUERY 事件函数发送多个参数。为了发送一个数据,我将它放在 html 代码中的 value attr 中。
<li id="<?php echo 'v'.$value['vehicleid'] ?>" value="<?php echo $value['vehicleid']; ?>" >
并在 JQuery 事件函数中获取数据$(this).val()
但我不知道如何将多个 php 数据传递给 JQuery 事件函数!
这些数据是动态的,由 php 代码生成。
前几天我遇到了类似的事情。
尝试使用 html5 自定义数据属性。
John Resig(jquery 之王和一般 javascript 忍者)首先在此处发布了有关它的信息。
所以:
<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 网站上的示例。
我不能百分百确定您与哪种事件有关。但是你可以在函数内部传递多个参数(..HERE..)。它应该用逗号分隔。就像这样。
$('selector').change(function(arg1,arg2,arg3){
alert(arg1+arg2+arg3);
});
在此示例中,我使用选择器“选择器”的更改事件。
您不能在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('-');
只需确保用于分隔的字符不用于车辆 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 元数据上使用 data- 前缀,您可以放心地知道它会在未来继续正常工作。在 HTML 5 验证器集成到完整的 W3C 验证器时,您的站点已经符合要求(当然,假设您已经是有效的 HTML 5 并使用 HTML 5 Doctype)。
我认为您必须创建一个函数来处理事件
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>