Форсируйте событие в jQuery

Другие ответы сделали хорошее задание объяснения базовых функций Мерзавца (которые являются большими). Но существуют также так многие мало способы, которыми Мерзавец ведет себя лучше и помогает сохранить мою жизнь более нормальной. Вот некоторые небольшие вещи:

  1. у Мерзавца есть 'чистая' команда. SVN отчаянно нужна эта команда, рассматривая, как часто это будет выводить дополнительные файлы на Вашем диске.
  2. у Мерзавца есть 'разделить пополам' команда. Это хорошо.
  3. SVN создает .svn каталоги в каждой папке (Мерзавец только создает один .git каталог). Каждый сценарий, который Вы пишете, и каждый grep, который Вы делаете, должен будет быть записан для игнорирования этих .svn каталогов. Вам также нужна вся команда ("svn экспорт") только для получения нормальной копии файлов.
  4. В SVN, каждый файл & папка может прибыть из различного пересмотра или ответвления. Сначала, звучит хорошим иметь эту свободу. Но то, что это на самом деле означает, - то, что существует миллион различных путей к Вашему локальному контролю, который будет полностью завинчен. (например, если "svn переключатель" перестал работать на полпути через, или если Вы вводите команду неправильно). И худшая часть: если Вы когда-либо входите в ситуацию, куда некоторые Ваши файлы прибывают из одного места, и некоторые из них от другого, "svn состояние" скажут Вам, что все нормально. Необходимо будет сделать "svn информацию" о каждом файле/каталоге, чтобы обнаружить, как странные вещи. Если "состояние мерзавца" говорит Вам, что вещи нормальны, то можно положить, что вещи действительно нормальны.
  5. необходимо сказать SVN каждый раз, когда Вы перемещаете или удаляете что-то. Мерзавец просто поймет его.
  6. Игнорируют семантику, легче в Мерзавце. При игнорировании шаблона (такого как *.pyc), он будет проигнорирован для весь подкаталоги. (Но если Вы действительно хотите проигнорировать что-то всего для одного каталога, Вы можете). С SVN кажется, что нет никакого простого способа проигнорировать шаблон через все подкаталоги.
  7. Другое вовлечение объекта игнорируют файлы. Мерзавец позволяет иметь "частный", игнорируют настройки (использующий файл .git/info/exclude), который не будет влиять ни на кого больше.
13
задан Abie 9 August 2009 в 16:08
поделиться

4 ответа

Официальный способ jquery инициировать / принудительно инициировать событие -

$("selector").trigger("blur");
$("selector").trigger("focus");

Но я не уверен, что это то, что вам поможет.

29
ответ дан 1 December 2019 в 19:40
поделиться

Вы смешиваете вызовы jQuery и DOM, вам действительно следует избегать этого.

Создайте специальные обработчики для кнопок «Вниз» и «Вверх» (используя либо теги ID, либо теги классов), а затем измените значение вашего калькулятора, вызвав jQuery $ ("# Calculator"). val (decPlaces + 1);

5
ответ дан 1 December 2019 в 19:40
поделиться

После просмотра некоторых полезных комментариев я внес следующие изменения:

jQuery(function($) {
    $("button").bind("click", function(e){                         
        var decPlaces = $('#dpv').val() * 1;
        var hi1 = $('#origin').val();
        if (this.id == 'up' && decPlaces < 5){                    
            $('#dpv').val(decPlaces + 1);
            if (hi1 != ''){
                $('#' + hi1).trigger("blur");
            }
        }
        if (this.id == 'down' && decPlaces > 0){    
            $("#dpv").val(decPlaces - 1);
            if (hi1 != ''){
                $('#' + hi1).trigger("blur");
            }
        }
    });
    $('input.auto').focus(function(){
        if (this.id != 'dpv'){                    
            $(this).parent().addClass("curFocus")
        }
    });
    $('.clearAll').focus(function(){
        $('.clearAll').val("");
    });
    $('input.auto').blur(function(){
        $(this).parent().removeClass("curFocus")                          
        var sqft = 10.76391041670972192890; //square feet per square meter
        var lbs = 2.20462262184877566540; //pounds per kilo
        var bwiv = '';
        var sfiv = '';
        var bwmv = '';
        var smmv = '';
        $('#origin').val(this.id);
        if((this.id == 'bwi' || this.id == 'sfi') && this.value != ''){ // imperial
            if(this.id == 'bwi'){
                bwiv = $.fn.autoNumeric.Strip(this.id);
                sfiv = (3000 / bwiv);
                $('#sfi').val($.fn.autoNumeric.Format('sfi', sfiv));
            }
            if(this.id == 'sfi'){
                sfiv = $.fn.autoNumeric.Strip(this.id);
                bwiv = (3000 / sfiv);
                $('#bwi').val($.fn.autoNumeric.Format('bwi', bwiv));
            }
            bwmv = (((bwiv / lbs) / (3000 / sqft)) * 1000);
            smmv = (1000 / bwmv);
            $('#bwm').val($.fn.autoNumeric.Format('bwm', bwmv));
            $('#smm').val($.fn.autoNumeric.Format('smm', smmv));
        }
        if((this.id == 'bwm' || this.id == 'smm') && this.value != ''){ //metric
            if(this.id == 'bwm'){
                bwmv = $.fn.autoNumeric.Strip(this.id);
                smmv = (1000 / bwmv);
                $('#smm').val($.fn.autoNumeric.Format('smm', smmv));
            }
            if(this.id == 'smm'){
                smmv = $.fn.autoNumeric.Strip(this.id);
                bwmv = (1000 / smmv);
                $('#bwm').val($.fn.autoNumeric.Format('bwm', bwmv));
            }
            bwiv = ((((bwmv / 1000) * lbs) / sqft) * 3000);
            sfiv = (3000 / bwiv);
            $('#bwi').val($.fn.autoNumeric.Format('bwi', bwiv));
            $('#sfi').val($.fn.autoNumeric.Format('sfi', sfiv));
        }
    }); 
});

Кнопки «вверх-вниз», которые увеличивают или уменьшают значение десятичной дроби, по-прежнему не очень отзывчивы в IE.

К вашему сведению - функция autoNumeric предназначена для созданного мной плагина, который выполняет числовое форматирование на лету.

Еще раз спасибо.

Боб

0
ответ дан 1 December 2019 в 19:40
поделиться

Не уверен, что я вас понял, но вы можете применить функцию к определенной локальной (этой) области:

var x = 5;

var f = new Function('alert(this.x)');

function A(x){
    this.x = x;
    f.apply(this,[]);
}

a = new A(10);

Это предупреждение 10 как f применяется с A.this

-121--3995716-

Попробуйте это

$('li.primaryMenuItem:last li a:last').blur([do whatever you need to do])

Логически, если пользователь выключается, он должен был фокусировать последний якорь.

Можно даже настроить собственный обработчик событий так:

$('li.primaryMenuItem:last').bind('myblur', function() ...);

и вызвать его в пределах последнего события размытия якоря:

...blur(function() {
    $(this).parents('li.primaryMenuItem').trigger('myblur'); ...
-121--4293832-

Я ненавижу нечитаемый код, поэтому я просто отформатировал его для вас:)

jQuery(function($) { $("button").bind("click", function(e){
         var decPlaces = $('#dpv').val() * 1; 
         var hi1 = $('#origin').val(); 
         if (this.id == 'up' && decPlaces < 5){
              $('#dpv').val(decPlaces + 1); 
              if (hi1 != ''){ 
                   $('#' + hi1).trigger("blur"); 
              } 
         } 
         if (this.id == 'down' && decPlaces > 0){ 
              $("#dpv").val(decPlaces - 1); 
              if (hi1 != ''){ 
                   $('#' + hi1).trigger("blur"); 
              } 
         } 
     }); 

 $('input.auto').focus(function(){ 
      if (this.id != 'dpv'){
           $(this).parent().addClass("curFocus") 
      } 
 }); 

 $('.clearAll').focus(function(){ $('.clearAll').val(""); });

 $('input.auto').blur(function(){ 
      $(this).parent().removeClass("curFocus")
      var sqft = 10.76391041670972192890; //square feet per square meter 
      var lbs = 2.20462262184877566540; //pounds per kilo 
      var bwiv = ''; 
      var sfiv = ''; 
      var bwmv = '';  
      var smmv = ''; 

      $('#origin').val(this.id); 
      if((this.id == 'bwi' || this.id == 'sfi') && this.value != ''){ 
           // imperial 
           if(this.id == 'bwi'){ 
                bwiv = $.fn.autoNumeric.Strip(this.id); 
                sfiv = (3000 / bwiv); 
                $('#sfi').val($.fn.autoNumeric.Format('sfi', sfiv)); 
           } 
           if(this.id == 'sfi'){ 
                sfiv = $.fn.autoNumeric.Strip(this.id); 
                bwiv = (3000 / sfiv); 
                $('#bwi').val($.fn.autoNumeric.Format('bwi', bwiv)); 
           } 
           bwmv = (((bwiv / lbs) / (3000 / sqft)) * 1000); 
           smmv = (1000 / bwmv); 
           $('#bwm').val($.fn.autoNumeric.Format('bwm', bwmv));                      

           $('#smm').val($.fn.autoNumeric.Format('smm', smmv)); 
      } 
      if((this.id == 'bwm' || this.id == 'smm') && this.value != ''){ //metric     
           if(this.id == 'bwm'){ 
                bwmv = $.fn.autoNumeric.Strip(this.id); 
                smmv = (1000 / bwmv); 
                $('#smm').val($.fn.autoNumeric.Format('smm', smmv)); 
            } 
           if(this.id == 'smm'){ 
                 smmv = $.fn.autoNumeric.Strip(this.id); 
                 bwmv = (1000 / smmv); 
                 $('#bwm').val($.fn.autoNumeric.Format('bwm', bwmv)); 
           } 
           bwiv = ((((bwmv / 1000) * lbs) / sqft) * 3000); 
           sfiv = (3000 / bwiv); 
           $('#bwi').val($.fn.autoNumeric.Format('bwi', bwiv));  
           $('#sfi').val($.fn.autoNumeric.Format('sfi', sfiv)); 
      } 
 }); 

});

0
ответ дан 1 December 2019 в 19:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: