Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: как сделать js функцию ?
 
 автор: asker   (23.06.2013 в 21:25)   письмо автору
 
 

не силен в js и jquery написал как мог) но явно один и тот же код дублируется, как его вынести в отдельную функцию ? а лучше класс..


$(document).ready(function() {
    //track_zone_6 load page
    jQuery.fn.exists = function() {
        return $(this).length;
    }
    if($("#homepage").exists()) {
        var user_id = $(".userbox").attr('id');
        var site_id = $(".seefull").attr('id');
        var zone_name = 'zone_6';

        $.ajax({
            type: "POST",
            url: "call.php",
            data: ({
                'user_id'  : user_id,
                'site_id': site_id,
                'zone_name' : zone_name
            }),
            success: function(msg){
                alert( "Data Saved: " + msg );
            }
        });
    }
    $('#zone_1,  #zone_2, #zone_4, #zone_5').click(function() {

        var user_id = $(".userbox").attr('id');
        var site_id = $(".seefull").attr('id');
        var zone_name = this.getAttribute('id');

        //send ajax request
        $.ajax({
            type: "POST",
            url: "call.php",
            data: ({
                'user_id'  : user_id,
                'site_id': site_id,
                'zone_name' : zone_name
            }),
            success: function(msg){
                alert( "Data Saved: " + msg );
            }
        });

        $('#'+zone_name).unbind('click');
    });
});

  Ответить  
 
 автор: psychomc   (23.06.2013 в 23:16)   письмо автору
 
   для: asker   (23.06.2013 в 21:25)
 

на первый взгляд всё более-менее нормально. да и нету в js такого понятия как класс, по крайней мере встроенных возможностей языка, которые бы позволяли писать классы и создавать их объекты, нет. есть только сами объекты

  Ответить  
 
 автор: confirm   (24.06.2013 в 05:50)   письмо автору
 
   для: asker   (23.06.2013 в 21:25)
 

Покажите исходный html-код, пояснив чего нужно, тогда будет видно как. А такое конечно никуда не годится.
А это для чего?
jQuery.fn.exists = function() { 
        return $(this).length; 
}

Обращаясь к элементу используя селектор класса, всегда указывайте тег элемента, то есть не ".userbox", а "div.userbox". Обращение ".userbox" равноценно обращению "* .userbox" и заставляет просматривать все элементы документа.

  Ответить  
 
 автор: Sfinks   (24.06.2013 в 13:23)   письмо автору
 
   для: asker   (23.06.2013 в 21:25)
 

Что-то тут развели "философию".... А на конкретный вопрос ответа так и не прозвучало.

Выносим код в функцию.

Допустим исходный код такой:
if(a===b){
  // тут производятся какие-то действия, заменим их для краткости на:
  alert('Эквивалентны')
}else if(a==b){
  // тут производятся те же самые действия, но другой вывод:
  alert('Равны')
}else{
  // тут снова выполняется тот же самый код, но с третим значением:
  alert('Не эквивалентны, не равны')
}
переписываем его так:
function myFunc(a){
  // тут производятся общие для всех случаев действия, в следуещей строке используем значение аргумента:
  alert(a)
}
if(a===b){
  myFunc('Эквивалентны')
}else if(a==b){
  myFunc('Равны')
}else{
  myFunc('Не эквивалентны, не равны')
}

  Ответить  
 
 автор: confirm   (24.06.2013 в 15:30)   письмо автору
 
   для: Sfinks   (24.06.2013 в 13:23)
 

Модератор совестливый, стирает все подряд. ) Trigger, вот что нужно, а не плодить функции, когда она уже есть.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования