2014-12-16 2 views
-3

Мой метод .ready() не вызывает функцию, которую он должен был использовать. Сама функция работает нормально, но когда я пытаюсь выполнить ее как первое, что загружается после загрузки, она ничего не делает. Я прошел через существующую тему, но не смог найти способ ее исправления.jQuery .ready method

Я хотел бы добавить, что я хочу, чтобы моя функция, которая будет выполняться после загрузки страницы, а также после нажатия кнопки (эта часть работает в данный момент)

Мой код:

<script> 
$(document).ready(function() { 
    calculation(); 
}); 

function calculation() { 
    variable = new XMLHttpRequest(); 

    var total = 0; 
    if($('#p1').val() && $('#qty').val()){ 
     var price = $('#p1').val(); 
     var qty = $('#qty').val(); 
     total += price * qty; 
    } 
    $('#total').val(total); 
} 
</script> 
+2

Вы видите ошибки в консольном журнале? – karthikr

+0

У вас есть более полный пример? http://jsbin.com/lereyaloza/1/ работает для меня. – chsh

+4

Вы загружаете jQuery до или после этого фрагмента кода? Для этого вам нужно загрузить его раньше. – Stryner

ответ

2

Вам необходимо загрузить JQuery перед запуском вашего скрипта.

<!-- Put jQuery Here --> 
<script> 
    $(document).ready(function() { 
     calculation(); 
    }); 

    //etc... 
</script> 

Причина, по которой ваш код работал раньше, потому что вы используете JQuery внутри функции, которая в настоящее время срабатывали как кнопка. Этот код никогда не будет работать до тех пор, пока не будет нажата кнопка, что происходило после загрузки браузера jQuery.

-2

Ваша ошибка происходит потому, что вы используете функцию READY.

здесь немного кода Thats вызывает вопрос:

if($('#p1').val() && $('#qty').val()){ 
     var price = $('#p1').val(); 
     var qty = $('#qty').val(); 
     total += price * qty; 
    } 
    $('#total').val(total); 

вы пытаетесь получить некоторые данные HTML элемент ... но думаю, что? ваш HTML еще не загружен.

вы хотите использовать событие onLoad.

здесь разница между готовым/OnLoad:

window.onload vs $(document).ready()

+0

idk, почему это ниспровергается без опровержения ... – nate

+1

Потому что ваше основное утверждение совершенно неверно. HTML-разметка *** делает *** полностью существовавшей при запуске события DOM. – Sparky