2013-10-04 56 views
0

我有這段代碼,當我在html靜態元素上使用它時工作正常,但是當我用jquery更改DOM時,它不起作用。 我試圖找到一些這樣的解決方案,但我不能。使用jQuery處理已經改變的dom對象

那麼如何修改這段代碼,使用dom對象,而不是使用html對象呢?

非常感謝你,祝你有美好的一天。

$(document).ready(function() { 

var Arrays=new Array(); 



$('.data').click(function(){ 

    var thisID = $(this).attr('id'); 

    var itemname = $(this).find('.product').html(); 
    var itemprice = $(this).find('.price').html(); 

    if(include(Arrays,thisID)) 
    { 
     var price = $('#each-'+thisID).children(".shopp-price").find('em').html(); 
     var quantity = $('#each-'+thisID).children(".shopp-quantity").html(); 
     quantity = parseInt(quantity)+parseInt(1); 

     var total = parseInt(itemprice)*parseInt(quantity); 

     $('#each-'+thisID).children(".shopp-price").find('em').html(total); 
     $('#each-'+thisID).children(".shopp-quantity").html(quantity); 

     var prev_charges = $('.cart-total span').html(); 
     prev_charges = parseInt(prev_charges)-parseInt(price); 

     prev_charges = parseInt(prev_charges)+parseInt(total); 
     $('.cart-total span').html(prev_charges); 

     $('#total-hidden-charges').val(prev_charges); 
    } 
    else 
    { 
     Arrays.push(thisID); 

     var prev_charges = $('.cart-total span').html(); 
     prev_charges = parseInt(prev_charges)+parseInt(itemprice); 

     $('.cart-total span').html(prev_charges); 
     $('#total-hidden-charges').val(prev_charges); 

     $('#left_bar .cart-info').append('<div class="shopp" id="each-'+thisID+'"><div class="label">'+itemname+'</div><div class="shopp-price"> $<em>'+itemprice+'</em></div><span class="shopp-quantity">1</span><img src="remove.png" class="remove" /><br class="all" /></div>'); 

     $('#cart').css({'-webkit-transform' : 'rotate(20deg)','-moz-transform' : 'rotate(20deg)' }); 
    } 

    setTimeout('angle()',200); 
}); 


$('.remove').livequery('click', function() { 

    var deduct = $(this).parent().children(".shopp-price").find('em').html(); 
    var prev_charges = $('.cart-total span').html(); 

    var thisID = $(this).parent().attr('id').replace('each-',''); 

    var pos = getpos(Arrays,thisID); 
    Arrays.splice(pos,1,"0") 

    prev_charges = parseInt(prev_charges)-parseInt(deduct); 
    $('.cart-total span').html(prev_charges); 
    $('#total-hidden-charges').val(prev_charges); 
    $(this).parent().remove(); 

}); 

$('#Submit').livequery('click', function() { 

    var totalCharge = $('#total-hidden-charges').val(); 

    $('#left_bar').html('Total Charges: $'+totalCharge); 

    return false; 

}); 

});

+0

什麼不起作用?你會得到什麼錯誤?請描述你期望發生的行爲 –

+0

而不是.livequery嘗試使用.live – JonasT

+0

刪除了我的評論,因爲它沒有意義:-) –

回答

0

可以請你用.bind()live()on()方法在DOM對象

bind()變化後:將處理程序爲元素的事件。

live():爲現在和將來與當前選擇器匹配的所有元素附加事件處理程序。

on():以上兩者都從較新的版本棄用所以其更好地使用.on()