向jquery事件函数发送多个动态参数

时间:2012-07-21 21:25:52

标签: php jquery

我想向JQUERY事件函数发送多个参数。为了发送一个数据,我把它放在html代码中的值attr中。

<li id="<?php echo 'v'.$value['vehicleid'] ?>" value="<?php echo $value['vehicleid']; ?>" >

使用$(this).val()在JQuery事件函数中获取数据但是我不知道如何将多个php数据传递给JQuery事件函数!
这些数据是动态的,由php代码生成。

4 个答案:

答案 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>