您好我有一个问题,试图在jQuery,AJAX和jQuery UI中创建Amount计算器。但我有一个问题,我从滑块,选择框中获取所有importat值。我真的不知道怎么能把这个价值带到全球。我只在每个函数中获取值,但是当我想要从函数中获取此值时,变量中的该值不存在。
$(function() {
//1st slider for get amount
$("#amount").slider({
range: "min",
value: 0,
min: 0,
max: 10000,
slide: function (e, ui) {
$("#amount_show").val(ui.value);
amount = ui.value;
}
});
$("#amount_show").val($("#amount").slider("value"));
//2nd slider for get values years
$("#years").slider({
range: "min",
value:1,
min:1,
max:20,
step:1,
slide: function (e, ui) {
$("#years_show").val(ui.value);
years = ui.value;
}
});
$("#years_show").val($("#years").slider("value"));
//AJAX for loading values from xml
$.get("irate.xml", function(xml) {
$(xml).find('country').each(function() {
var select = $('#country'),
id = $(this).attr('id'),
name = $(this).find('name').text(),
irate = $(this).find('irate').text(),
currency = $(this).find('currency').text();
select.append("<option value='"+irate+"'>"+name+"</option>");
});
});
//get irate value from dropbox
$("#country").change(function() {
var irate_select = "";
$("#country option:selected").each(function () {
irate_select += $(this).val() + " ";
});
irate = irate_select;
});
});
我需要用金额,年数和愤怒来计算。
感谢您的建议。
答案 0 :(得分:4)
在函数之外声明变量。
离。
var amount;
$(function...
答案 1 :(得分:1)
AndyL的答案应该是正确的。
如果声明需要在函数之外的另一个函数中使用的变量,然后在一个函数中设置它们的值,它们应该可以将这些值用于另一个函数。
// outside your function!!
var amount,
years,
irate;
// in your function somewhere!!
amount = someCalculation();
years = someOtherCalculation();
这些值将在每个其他函数中可用,因为它们被声明为全局命名空间的成员。
答案 2 :(得分:0)
尝试使用jquery的data()对象;
$(function(){
...
slide: function (e, ui) {
$("#amount_show").val(ui.value);
amount = ui.value;
// Add to data() object here
$('#amount').data('amount',amount);
}
// reference it elsewhere in your script like such:
console.log($('#amount').data('amount'));
答案 3 :(得分:0)
一个全局变量应该可以工作,但是,如果你改变某些东西的价值,你不应该改变你的“计算器”吗?
假装这是计算金额的html:
<input type="text" id="amount" style="border:0; color:#f6931f; font-weight:bold;" />
那么你需要在document.ready()中使用类似代码的东西:
//if the slider changes, then update the calculated value
$( "#years,#amount" ).bind( "slidechange", function(event, ui) {
myCalculator();
});
// if the ?country? drop down changes, update the calculated value
$().change(function(event){
myCalculator();
});
function myCalculator(){
var years = $('#years').slider("value");
var amount = $('#amount').slider("value");
var country = $('#country').val();
$('#amount').val("something")
};