|
|
|
|
|
для: Sfinks
(12.09.2012 в 17:30)
| | Модель декларативного языка другая, в SQL например, нет замыкания, а в JavaScript - есть. Если вводить агрегатные функции, получится дублирование функциональности (как сплошь и рядом в PHP), а это плохо, так как одну и ту же задачу можно будет решить большим количеством способов (как в Perl), что породит множество решений. Другим программистам потребуется каждый раз разбирать код, вместо того, чтобы один раз глянуть и понять, что именно тут запрограммировано. | |
|
|
|
|
|
|
|
для: Sfinks
(13.09.2012 в 01:19)
| | Ну в общем то и trim в jQuery вырезает только пробелы, не затрагивая переносы строк. А что касается 50-ти форм, то вы же под каждую из них не подключаете свой JS, так какие проблемы с маленькой функцией? А у формы нет логики, есть только поля, а обработать в примере выше поля только типа text и только указанной формы проблем нет, для этого в jQuery уже есть фильтры/селекторы.
Ни один язык программирования не обладает всем, которое бы делало за вас все, достаточно было бы только написать - "сотвори", вы же это прекрасно знаете. JS не исключение, и скрипты вашего проекта неизбежно будут обрастать функциями вашими.
Как в РНР подключения в JS нет, а включить в тело документа файл скрипта вы знаете как. А вот подключить внутри сценария внешний сценарий операция несколько трудоемкая, чем include, но выполнимая. В jQuery, среди ajax методов есть метод .getScript(), который получает удаленный скрипт и выполняет его. | |
|
|
|
|
|
|
|
для: confirm
(12.09.2012 в 21:45)
| | > .each() вполне решит вашу проблему
Проблемы в общем-то нет =) Я просто усомнился в том что такие простые вещи отсутствуют. Есть же trim.
> При этом кто вам сказал, что для этого потребуется подключать лишнее, да еще целый файл?
А когда в проекте около 50 форм с разной логикой и назначением, каждая из которых будет управляться своим скриптом, думаете я этот код буду в каждый скрипт втыкать?
Кстати, а есть в JS внутреннее подключение скриптов, типа include в php? | |
|
|
|
|
|
|
|
для: Sfinks
(12.09.2012 в 18:35)
| | Чему удивляться то? Разве MySQL обладает функциями, которые выполняют любую вашу прихоть? )
В JS даже нельзя получить максимальное значение элементов массива так, как вы это привыкли делать в РНР max(array), JS на такое Math.max(array) вернет строку значений массива. Это конечно не совсем хорошо, но не означает, что нельзя получить.
А в jQuery вы тем более "вольно" чувствуя себя, обращаетесь к объектам, выдвигая ряд условий, и еще получить конкретное значение.
.each() вполне решит вашу проблему, так как вас в итоге интересует значение. Другое дело, если вас интересует не само значение как таковое, а условие макс./мин., чтобы по этому условию выбрать объект, что собственно и является "главной заботой" jQuery - возвращать вам объект/объекты по вашим условиям. Вот в этом случае можно написать и свой метод/селектор, если действительно в этом есть необходимость. При этом кто вам сказал, что для этого потребуется подключать лишнее, да еще целый файл?
<script>
//пишем метод, который будет возвращать объект
//у которого значение минимальное или максимальное
//задается аргументом метода как 'min' or 'max'
$.fn.extremeVal = function() {
var n = 0, o, ext = arguments[0];
$(this).each(function(){
if(ext=='max' && $(this).val()*1>n
|| (ext=='min' && (!n || $(this).val()*1<n))) {
n = $(this).val()*1;
o = $(this);
}
});
return o;
}
//используем метод
$(function(){
$('input').keyup(function(){
$(this).val($(this).val()*1+$('input').extremeVal('max').val()*1);
});
});
</script>
<input value="6" />
<input value="21" />
<input value="112" />
<input value="14" />
| Кстати, агрегаты..., ну, для JS, это понятие такое же как и для слесаря - агрегат какого либо механизма, значится. ) | |
|
|
|
|
|
|
|
для: confirm
(12.09.2012 в 17:35)
| | Это все понятно.
Просто я удивился. Очень!
Это вроде нужная вещь. По крайней мере я сейчас только начал первый раз что-то реальное делать с использованием jQuery и JS в целом, и тут же понадобилось.
А самое странное, что там кода-то нет ниче. И можно было бы встроить....
А так теперь придется каждый раз подключать лишний файл. | |
|
|
|
|
|
|
|
для: Sfinks
(12.09.2012 в 17:30)
| | jQuery все-таки не MySQL, а функции MySQL не обязательно должны быть среди методов JS.
Но в jQuery вы можете добавить не только собственный селектор, но и метод, и пользоваться. | |
|
|
|
|
|
|
| Скажите, я чего-то в упор не вижу, или в jQuery на самом деле не встроили агрегатных функций?
Например так:
$.sum( $('input').val() );
| или
$.max( $('div').text() );
| ??? | |
|
|
|
|