jQuery脚本只运行一次

时间:2013-08-08 10:50:16

标签: jquery html html5 google-api

我有点jQuery通过google api控制货币转换器。转换器采用已定义的金额,并在您从下拉框中选择不同的货币时转换金额,但是它只会执行一次,您必须刷新以选择其他货币。

$(document).ready(function() {
    $('.data').change(function(){
        var cost = $('.itemExtraFieldsValue').html();
        var amount = Number(cost.replace(/[^0-9\.]+/g,""));     
        var from = "GBP";
        var to = $('#toCurrency').val();
        var dataString = "amount=" + amount + "&from=" + from + "&to=" + to;

        $.ajax({
            type: "POST",
            url: "ajax_converter.php",
            data: dataString,
            success: function(data){
                $('.itemExtraFieldsValue').replaceWith(data);
            }
        });
    });
});

我如何制作它以便您可以继续使用各种货币?谢谢!

编辑。抱歉应该把html打起来

<div id="currencyBox">
    <div class="tractor">
        <span class="itemExtraFieldsValue">£27000</span>
    </div>
    <div class="data">
        <select name="toCurrency" id="toCurrency">
            <option value="USD">United States Dollars - USD</option>
            <option value="GBP" selected>United Kingdom Pounds - GBP</option>
            <option value="CAD">Canada Dollars - CAD</option>
            <option value="AUD">Australia Dollars - AUD</option>
        </select>
    </div>
</div>

编辑2。

以下是我的测试页面的链接,给定的价格是预定义的

http://bettondesignwork.co.uk/tim/currency/

3 个答案:

答案 0 :(得分:1)

查看您的链接时,找不到类itemExtraFieldsValue的元素,因为在第一次调用时它会被替换,因为您使用了replaceWith。 试试这个:

function(data){
    $('.itemExtraFieldsValue').html(data);
}

答案 1 :(得分:0)

.data是您选择框的错误选择器,div没有更改事件,因此无法使用。
你应该改变

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

$('.data select').change(function(){

$('#toCurrency').change(function(){

在这种情况下你可以使用

var to = $(this).val();

作为你的价值。

答案 2 :(得分:0)

$('select').on("change", function(){
    // your stuff here
});