Javascript 只处理jQuery函数一次
HTML和PHP 我列出机票信息Javascript 只处理jQuery函数一次,javascript,jquery,Javascript,Jquery,HTML和PHP 我列出机票信息 当用户单击复选框时,处理jquery脚本以使用奖金计算折扣,并将返回的数据写入ticketPrice ID。但有多个复选框,如果用户再次单击另一个复选框脚本,则计算折扣,但我不这样做。我怎么能只处理一次呢 我的jquery代码 function useMyBonus(){ myBonus = parseInt($("#myBonus").text()); ticketPrice = parseInt($("#tic
当用户单击复选框时,处理jquery脚本以使用奖金计算折扣,并将返回的数据写入ticketPrice ID。但有多个复选框,如果用户再次单击另一个复选框脚本,则计算折扣,但我不这样做。我怎么能只处理一次呢
我的jquery代码
function useMyBonus(){
myBonus = parseInt($("#myBonus").text());
ticketPrice = parseInt($("#ticketPrice").text());
checked = $("#myBonusId").is(':checked');
if(checked == true){
$("#ticketPrice").text(ticketPrice-(myBonus/2));
}else{
$("#ticketPrice").text(ticketPrice+(myBonus/2));
}
}
您可以使用复选框中的任何标志来提醒尚未执行的操作(如addClass或jQuery.data),并在开始函数检查该类或数据时,如果它已经存在,只需返回。因为您在循环中创建了复选框,所以所有复选框都具有相同的
id
和“onclick”函数,所以无论何时单击该复选框函数中的任何一个,都会得到调用,所以将唯一id设置为checkbox并设置函数:
$('#uniqueId').click(function(){
//do your work here
});
或者在循环中,将
onclick
函数设置为只调用该函数。这将确保您的复选框是唯一的-
<table>
<?php
$i=0;
while($values = mysql_fetch_array($ticketInfo)){
echo '<tr>';
echo '<td id="ticketPrice">'. $values['ticket_price'] .'</td>';
echo '<td>'. $values['bonus']*5 .'</td>';
echo '<td><input type="checkbox" name="use_bonus" value="' .$i++ . "_" . $values['ticket_price'] . '" /></td>';
echo '</tr>';
}
?>
</table>
这将遍历所有复选框并继续计算
<script type="text/javascript">
function useMyBonus()
{
var myBonus=0;
checkboxes = document.getElementsByName('use_bonus');
for(var i in checkboxes)
{
if(checkboxes[i].checked)
{
var n=str.split("_");
//now your ticket price would be n[1], use n[1] for your bonus calculation
//calculate myBonus
}
}
}
</script>
函数useMyBonus()
{
var-myBonus=0;
复选框=document.getElementsByName('use_bonus');
用于(复选框中的var i)
{
如果(复选框[i]。选中)
{
var n=str.split(“”);
//现在您的票价将为n[1],使用n[1]计算奖金
//计算我的奖金
}
}
}
你能显示jQuery代码吗?你应该用javascript绑定事件处理程序(而不是像现在那样用html),并在执行时解除绑定。最好是在不使用PHP代码的情况下发布呈现的标记。顺便说一下,你的表单肯定会失败,因为你有多个元素具有相同的名称属性。除@jeroen comment外,你的标记也会失败,因为你有多个元素具有相同的ID。诚然,@prestack,在循环中创建ID时要非常小心,尽管导航器没有对此抱怨,那是错误的代码。谢谢你的帮助和评论。我是JS/Jquery新手。我会注意ID:)谢谢你提醒我,现在我已经修改了代码,使其为1_42、2_42、3_56等等……基本上我已经确保了一个运行计数,后跟一个下划线,后跟票价,会给我一个唯一的字符串,然后我在javascript中拆分它们并使用票价n[1]为了我的奖金计算