Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 单击事件调用(按键)不起作用_Jquery_Events_Keypress_Eventtrigger - Fatal编程技术网

Jquery 单击事件调用(按键)不起作用

Jquery 单击事件调用(按键)不起作用,jquery,events,keypress,eventtrigger,Jquery,Events,Keypress,Eventtrigger,我有两个事件:1)按键:它搜索数组中的数据。2) 单击:对于此事件,应发生按键事件的强制调用,但不会发生 我使用trigger()方法。在keypress中,我使用按下Enter的条件:if(event.keyCode==13){(所有的搜索逻辑都在这里)}else{}。正如我已经写过的,不调用带有单击的按键通话。我假设这是由于条件event.keyCode==13造成的,但我可能错了。请告诉我,也许在函数调用中,您也需要以某种方式注册此条件(event.keyCode==13)?如果是,请告诉

我有两个事件:1)按键:它搜索数组中的数据。2) 单击:对于此事件,应发生按键事件的强制调用,但不会发生

我使用trigger()方法。在keypress中,我使用按下Enter的条件:if(event.keyCode==13){(所有的搜索逻辑都在这里)}else{}。正如我已经写过的,不调用带有单击的按键通话。我假设这是由于条件event.keyCode==13造成的,但我可能错了。请告诉我,也许在函数调用中,您也需要以某种方式注册此条件(event.keyCode==13)?如果是,请告诉我怎么做。如果这不是问题,那么问题是什么?我很乐意回答任何问题。从代码中,我删除了所有不必要的问题,留下了基础。谢谢

$(文档).on('keypress','search_edit',函数(事件){
let value=$(this.val().toLowerCase();
如果(event.keyCode==13){
$('.blog_content')。每个(函数(){
if($(this).text().toLowerCase().indexOf(值)=-1){
$(this.addClass('item_none');
返回;
}否则{
$(this.removeClass('item_none');
}             
});
});
$('.tags li a')。在('click',函数(事件){
event.preventDefault();
$('.search_edit')。触发器('keypress');
});
//////////////////////////////////////////我试着这样做,但没用。
$('.tags li a')。在('click',函数(事件){
event.preventDefault();
event.keyCode=13;
$('.search_edit').trigger(jQuery.Event(“keypress”);

});
调用函数而不是触发按键怎么样

$(document).on('keypress','.search_edit',myFunction);
函数myFunction(事件){
event.preventDefault();
let value=$(this.val().toLowerCase();
如果(event.keyCode==13){
$('.blog_content')。每个(函数(){
if($(this).text().toLowerCase().indexOf(值)=-1){
$(this.addClass('item_none');
返回;
}否则{
$(this.removeClass('item_none');
}             
});
}

$('.tags li a')。在('click',myFunction);
调用函数而不是触发按键怎么样

$(document).on('keypress','.search_edit',myFunction);
函数myFunction(事件){
event.preventDefault();
let value=$(this.val().toLowerCase();
如果(event.keyCode==13){
$('.blog_content')。每个(函数(){
if($(this).text().toLowerCase().indexOf(值)=-1){
$(this.addClass('item_none');
返回;
}否则{
$(this.removeClass('item_none');
}             
});
}

$('.tags li a')。在('click',myFunction);
上,可以通过将一个函数绑定到两个事件来完成此操作

通过使用单击功能绑定时传递您自己的数据,这里没有使用Enter键的按键,因此您的逻辑不会按照您的要求运行

以下是您可以使用的代码:

$(document).on('keypress', '.search_edit', search);

function search(event){
          event.preventDefault();
          let value = $(this).val().toLowerCase();

          if (event.keyCode == 13 || event.data.keyCode == 13) {      
          $('.blog_content').each(function() {
          
            if($(this).text().toLowerCase().indexOf(value) === -1) {
              $(this).addClass('item_none');
            return;
            } else {
              $(this).removeClass('item_none');
                   }             
          });
}
   
$('.tags li a').on('click',{keyCode=13}, search);
这里我传递了keyCode的值,它等于13,这将满足您的条件

或者其他方法可以是:

$(document).on('keypress', '.search_edit', search);
    
    function search(event){
              event.preventDefault();
              let value = $(this).val().toLowerCase();
    
              if (event.keyCode == 13 ) {      
              $('.blog_content').each(function() {
              
                if($(this).text().toLowerCase().indexOf(value) === -1) {
                  $(this).addClass('item_none');
                return;
                } else {
                  $(this).removeClass('item_none');
                       }             
              });
    }

$('.tags li a').on('click', function (event) {
      event.preventDefault();
      event.keyCode = 13;
      search(event);
});

可以通过将一个函数绑定到两个事件来实现这一点

通过使用单击功能绑定时传递您自己的数据,这里没有使用Enter键的按键,因此您的逻辑不会按照您的要求运行

以下是您可以使用的代码:

$(document).on('keypress', '.search_edit', search);

function search(event){
          event.preventDefault();
          let value = $(this).val().toLowerCase();

          if (event.keyCode == 13 || event.data.keyCode == 13) {      
          $('.blog_content').each(function() {
          
            if($(this).text().toLowerCase().indexOf(value) === -1) {
              $(this).addClass('item_none');
            return;
            } else {
              $(this).removeClass('item_none');
                   }             
          });
}
   
$('.tags li a').on('click',{keyCode=13}, search);
这里我传递了keyCode的值,它等于13,这将满足您的条件

或者其他方法可以是:

$(document).on('keypress', '.search_edit', search);
    
    function search(event){
              event.preventDefault();
              let value = $(this).val().toLowerCase();
    
              if (event.keyCode == 13 ) {      
              $('.blog_content').each(function() {
              
                if($(this).text().toLowerCase().indexOf(value) === -1) {
                  $(this).addClass('item_none');
                return;
                } else {
                  $(this).removeClass('item_none');
                       }             
              });
    }

$('.tags li a').on('click', function (event) {
      event.preventDefault();
      event.keyCode = 13;
      search(event);
});

我成功地做到了这一点,而且效果很好:

$('.tags .tags li a').on('click', function(event) {
      event.preventDefault();
      var tag = $(this).text().trim();
      var event_click_tag_fromblog = $.Event('keypress');

      event_click_tag_fromblog.keyCode = 13;

      $('.search_edit').val(tag);
      $('.search_edit').trigger(event_click_tag_fromblog);

});

我成功地做到了这一点,而且效果很好:

$('.tags .tags li a').on('click', function(event) {
      event.preventDefault();
      var tag = $(this).text().trim();
      var event_click_tag_fromblog = $.Event('keypress');

      event_click_tag_fromblog.keyCode = 13;

      $('.search_edit').val(tag);
      $('.search_edit').trigger(event_click_tag_fromblog);

});

在代码中,您需要在事件中添加keyCode,因为所有逻辑都基于该条件。event.keyCode=13?只要我从搜索事件中删除该条件-if(event.keyCode==13){search}else{,然后一切都正常了是的,我已经为这个添加了解决方案。请仔细研究。在代码中,您需要在事件中添加键代码,因为所有逻辑都基于该条件。event.keyCode=13?只要我从搜索事件中删除该条件-if(event.keyCode==13){search}else{},然后一切正常。是的,我已经为这个添加了解决方案。请仔细研究。谢谢你的回答,但我需要打电话给keypress。但是你实际上通过上述解决方案调用了相同的逻辑。你不需要写两次逻辑。为什么你需要打电话给keypress?谢谢你的回答,但我需要打电话给keypress。但是你实际上是通过上述解决方案,您可以调用相同的逻辑。您不需要编写两次逻辑。为什么需要调用keypress?