2015-03-05 3 views
-1

Хорошо, поэтому мой код принимает входное значение "textmoney" и показывает, сколько денег вы делаете за год. Когда вы нажмете кнопку «Ввод», появится всплывающее окно, в котором будет отображаться статистика по количеству, введенному вами в «textmoney». В принципе, я не могу заставить текст статистики исчезать, когда в текстовой строке нет ничего "textmoney". Он делает это с отображением основного номера и кнопки статистики, но не фактических данных. Данные статистики - это $ secondp, $ minutep и т. Д. Что я делаю не так? Я сказал в теге statFunction, что если значение "textmoney" == 0, то оно должно скрыть все данные статистики.Как удалить текст в jQuery

Вот мой код:

$(document).ready(function() { 

var $demo = $('#demo'); 
var $textMoney = $('#textmoney'); 
var $moneydiv = $('#moneydiv'); 
var $stat = $('#stat'); 


var $secondp = $('#second'); 
var $minutep = $('#minute'); 
var $hourp = $('#hour'); 
var $dayp = $('#day'); 
var $weekp = $('#week'); 
var $monthp = $('#month'); 
var $yearp = $('#year'); 

$('#stat').hide(); 

function getmoney(){ 
    var money = $textMoney.val(); 
     if (isNaN(money) || money === '') { 
      $demo.text('You aint enter no $$$$$$'); 
     } else { 
      var dailyE = $textMoney.val() * 365; 
      $demo.text('$' + (dailyE - 1150) + " - " + "$" + (dailyE + 1254) + ' per year'); 
     } 
} 

function statFunction() { 

    var dailyE = $textMoney.val() * 365; 
    var $second = (dailyE/365) /24 /60 /60 
    var $minute = (dailyE/365) /24 /60; 
    var $hour = (dailyE/365)/24; 
    var $day = dailyE/365; 
    var $week = dailyE/52; 
    var $month = dailyE/12; 
    var $year = dailyE; 
    $secondp.text("$" + $second + "  a second"); 
    $minutep.text("$" + $minute + "  a minute"); 
    $hourp.text("$" + $hour + "  an hour"); 
    $dayp.text("$" + ($day - 52) + " - " + "$" + ($day + 53) + " " + " a day"); 
    $weekp.text("$" + $week + "  a week"); 
    $monthp.text("$" + $month + "  a month"); 
    $yearp.text("$" + ($year - 1150) + " - " + "$" + ($year + 1254) + " per year"); 

    var money = $textMoney.val(); 
     if (money == 0) { 
      $secondp.hide(); 
     } 

} 

// on enter key 
$textMoney.keydown(function(e) { 
    if (e.which === 13) { 
     getmoney(); 
     $('#stat').show(); 
    } else if ($(this).val() === '') { 
     $demo.text(''); 
     $('#stat').hide(); 
    } 
}).mouseover(function() { 
    $(this).css('border', '1px solid black'); 
}).mouseout(function() { 
    $(this).css('border', '1px solid grey'); 
}); 

// on click 
$moneydiv.click(function(){  
    getmoney(); 
    $('#stat').show(); 
}); 

$stat.click(function() { 
    statFunction(); 
}) 

}); 
</script> 
+1

Как выглядит ваш HTML-код? Не стесняйтесь добавлять фрагмент рабочего кода вашего комбинированного HTML и JavaScript с помощью Ctrl + M – Thriggle

ответ

0

Я думаю, что проблема в вашей KeyDown функции.

Вы хотите сказать что-то вроде этого:

// on enter key 
$textMoney.keydown(function(e) { 
    if (e.which === 13) { 
     getmoney(); // call this function 
     if ($textMoney.val() == '') { // if $textMoney is empty then hide stats 
      $('#stat').hide(); 
     } else { // otherwise show stats 
      $('#stat').show(); 
     } 
    } 
}); 

Я бы сказал, однако, что есть, вероятно, некоторые другие способы, которые вы можете очистить ваш код, но это должно решить вашу проблему сейчас.