2013-07-19 2 views
1

здесь У меня есть функция, которая будет отображать время, основанное на ширине объекта div, в подсказке jquery.Функция JQuery с аргументами

Теперь я хочу использовать ту же функцию для вычисления «времени начала» и «окончания времени», но я хочу использовать ту же функцию, а не писать новую, поэтому я должен создать эту функцию для аргументов, но логически Я действительно не понимаю, как это произошло.

SO: в подсказке я должен показать:

var time = $(this).width(); 
var startTime = $(this).position().left; 
var endTime = startTime + time; 

также здесь подсказке код:

$(document).tooltip({ 
     items: ".draggable", 
     track: true, 
     content: updateTooltipContent 
    }); 

и функция, в которой я должен добавить аргумент:

function updateTooltipContent() { 
    var time = $(this).width(); 
    if (time < 0) { 
     time = 0; 
    } 

    var seconds = time % 60; 
    var minutes = (time - seconds)/60; 
    var output; 

    if (minutes >= 10) { 
     output = "" + minutes; 
    } else { 
     output = "0" + minutes; 
    } 
    output += "h "; 
    if (seconds >= 10) { 
     output += seconds; 
    } else { 
     output += "0" + seconds; 
    } 

    return output + "min"; 
} 
}); 

Теперь всплывающая подсказка должна показывать: "spending time" + time + "start time" + startTime + "end time" + endTime;

Как сделать эту функцию с помощью арбитража 3 раза, потому что я должен преобразовать число в формат времени?

+2

Что значит «с аргументом»? Какой аргумент? Для чего аргумент? – Pointy

+0

function (time, startTime, endTime) ... –

+0

Я могу написать 3 functon, но почему, когда я могу написать только один ... –

ответ

1

Я действительно не понимаю, что вы просите, но если это просто, что вам нужна функция «updateTooltipContent», чтобы использовать время форматирования, вы могли бы сделать это:

$(document).tooltip({ 
    items: ".draggable", 
    track: true, 
    content: function() { 
     return formatTime($(this).width()) + formatTime(whatever) + formatTime(somethingElse); 
    } 
}); 

function formatTime(time) { 
    if (time < 0) { 
     time = 0; 
    } 

    var seconds = time % 60; 
    var minutes = (time - seconds)/60; 
    var output; 

    if (minutes >= 10) { 
     output = "" + minutes; 
    } else { 
     output = "0" + minutes; 
    } 
    output += "h "; 
    if (seconds >= 10) { 
     output += seconds; 
    } else { 
     output += "0" + seconds; 
    } 

    return output + "min"; 
} 

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

+0

да это ответ –

0

вы имеете в виду это:

$(document).tooltip({ 
    items: ".draggable", 
    track: true, 
    content: updateTooltipContent(a, b) 
}); 

function updateTooltipContent(a, b) { 
+0

да, я знаю это, но как будет функционировать, как добавить начало и конец времени для работы ... где ? напишите ad jsfiddle –

+0

Я могу написать 3 функции, но хочу попробовать с аргументами, извините за мой английский –

+0

Это не будет работать, конечно. – Pointy

Смежные вопросы