2012-07-21 59 views
0

我想发送多个参数到JQUERY事件functions.For发送一个数据我把它的价值attr在html代码。发送多个动态参数到jquery事件函数

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

并获得与$(this).val()在JQuery的事件函数的数据,但我不知道我怎么可以将多个PHP数据将jQuery事件函数!
这些数据是动态的,由php代码生成。

回答

0

你不能在一个li使用VAL()它应该是在表单元素输入用于其中有一个名为value

有效的属性对于李,你可以使用数据属性

<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不用于车辆IDS

这会帮助你:

从Resig的
$(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; 
    }); 
}); 

报价:

我觉得什么是最诱人的这整个规范是 你不必等待任何浏览器来实现任何为了 到开始使用它。通过今天开始在您的HTML元数据前缀中使用数据前缀,您可以安全地知道它将在未来继续工作 。将HTML 5验证程序 集成到完整的W3C验证程序时,您的站点已经符合 (假设您已经有效使用HTML 5并使用HTML 5 Doctype )。

+0

Thanks.I有多个数据可以使用它们中的每个数据吗?像这样data-id =“<?php echo $ id?>”data-name =“<?php echo $ name?>”等等.Ang在jquery中用data(dataattrname)获取它们的值?如果我有一个php数组,我不知道该数组中的哪些数据如何发送此数组数据到JQUERY事件函数? – user1344766 2012-07-21 21:49:57

+0

@ user1344766我已经更新了答案,'事件'不清楚,我假定它是一个点击li。 – sabithpocker 2012-07-21 21:58:49

+0

thanks.This技巧只适用于支持html5的浏览器,或者可以在不支持html5的浏览器上运行? – user1344766 2012-07-21 22:33:14

0

我不是百分之一百确定你所属的事件是哪一种。但是你可以在函数内传递多个参数(.. HERE ..)。它应该用逗号分隔。就像这样。

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

在这个例子中,我使用选择器'选择器'的更改事件。

+0

我要发送数据时,对li.But .hover事件我不不知道如何发送多个数据到.hover事件!如何在li中嵌入数据并获取它们在JQuery函数中?或者,如何将多个数据发送到JQUERY事件函数。这些数据是动态的,并由php产生 – user1344766 2012-07-21 21:56:09

1

我偶然发现了类似的东西。

尝试使用html5自定义数据属性。

John Resig(jquery和一般的javascript忍者之王)首次发布了关于它的here

这样:

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

使用jQuery。数据函数然后访问它。见http://api.jquery.com/data/

如果要添加大量的数据,我建议使用对象文本

{ vehicleId: <?php echo 'v'.$value['vehicleid'] ?>, 
vehicleName: <?php echo 'v'.$value['vehicleName'] ?>} 

在jQuery的网站上的例子。

+0

只是对sabithpocker的回答发表评论 - 避免使用1234-3456类型的数据会更好更明确您需要使用split(“ - ”))并使用对象文本来将数据提取出来。 – Trujllo 2012-07-21 22:18:59

+0

Thanks.But如果用户浏览器不支持html5,那么如何使用这个技巧? – user1344766 2012-07-21 22:21:27

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> 
相关问题