0

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

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

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

4

4 回答 4

1

前几天我遇到了类似的事情。

尝试使用 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 网站上的示例。

于 2012-07-21T21:48:15.913 回答
0

我不能百分百确定您与哪种事件有关。但是你可以在函数内部传递多个参数(..HERE..)。它应该用逗号分隔。就像这样。

    $('selector').change(function(arg1,arg2,arg3){
          alert(arg1+arg2+arg3);
   });

在此示例中,我使用选择器“选择器”的更改事件。

于 2012-07-21T21:39:25.337 回答
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('-');

只需确保用于分隔的字符不用于车辆 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)。

于 2012-07-21T21:40:07.770 回答
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>
于 2012-07-21T22:05:16.063 回答