使用jquery实时总和两个输入单选按钮和href

时间:2013-03-06 17:04:56

标签: jquery radio-button sum real-time

我想从按钮和href中总结2个输入。这是我的代码

这是HTML CODE

  <a id="add1" class="thumbnail"  alt="100000" href="">one</a>
    <br>
  <a id="add1" class="thumbnail"  alt="150000" href="">two</a>
    <br>
  <a id="add1" class="thumbnail"  alt="90000" href="">theree</a>

<hr>
<hr>
<input class="add2" type="radio" value="1" alt="100000" name="material">
LACE
<br>
<input class="add2" type="radio" value="2" alt="200000" name="material">
LACE - LEATHER
<br>
<input class="add2" type="radio" value="3" alt="150000" name="material">
LACE - SUEDE
<br>
<hr>
<hr>
<img src="" alt="0" id="mainImage" class="pret">
<div id="cau"  alt="0"class="pret"></div>
<div id="usertotal"> PRICE  :  IDR  0</div>

这是Jquery

<script type="text/javascript">
    $(document).ready(function() {
        $('.thumbnail').live("click", function() {
            var g = $(this).attr('alt');
            var e = $(this).attr('href');
            calculateSum();
            $('#mainImage').hide();
            $('#mainImage').html('<img class="pret" alt="'+g+'" src="'+e+'">').fadeIn();
            return false; 
        });

        $('.add2:checked').change(function(){ 
            var m = $(this).attr('alt');
            var a = $(this).attr('value');
            alert(m);
            calculateSum();
            $('#cau').hide();
            $('#cau').html('<div name="'+a+'" class="pret" alt="'+m+'"></div>').fadeIn();
            return false; 
        });

    });
    function calculateSum() {
        var sum = 0;
        $(".pret").each(function() {
            sum += parseFloat($(this).attr('alt'));
        });
        $('#usertotal').html('PRICE : IDR  '+ sum);
    }
</script>

问题是:为什么我的代码运行得如此之慢?我必须点击两次才能总结出来吗?我想让它一键运行。

谢谢你回答:) 此致

1 个答案:

答案 0 :(得分:1)

我发现你的代码存在很多问题,所以我不知道究竟是什么导致了你的问题。

首先关闭:您需要在alt属性和类属性之间留一个空格,如下所示:

<div id="cau" alt="0" class="pret"></div>

其次:

$('#mainImage').html('<img class="pret" alt="'+g+'" src="'+e+'">').fadeIn();

这甚至不能正常工作,因为你不能把html“放在”一个图像元素中(#mainImage毕竟是一个<img />元素。)

第三

$('.add2:checked').change(function(){

这不应对您发布的代码执行任何操作,因为在页面加载时没有检查类.add2的元素。因此,这个处理程序永远不会做任何事情。