Есть ли способ сделать ||или оператор с функцией щелчка, используя Jquery? - PullRequest
0 голосов
/ 23 октября 2019

Мне интересно, могла бы я иметь функцию, которая вызывается либо нажатием на div, либо нажатием пробела. Я не помню, чтобы когда-нибудь видел такую ​​функцию ... есть ли способ сделать это?

$('.button').click || keypress.keyCode === 32 (function() { 
    //do something
)};

Ответы [ 4 ]

1 голос
/ 23 октября 2019

Вы можете напрямую вызвать функцию, используя событие «onclick» в div.

<div onclick='invokeAFuntion' id='div-element'></div>

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

$(document).on('keypress',function(e) {
    if(e.which == 32) {
        alert('You pressed enter!');
    }
});

function invokeAFuntion(){
 alert('You have invoked the function!');
}
1 голос
/ 23 октября 2019

Вы можете попробовать это также проверить здесь демо Нажмите здесь .

Примечание: вы можете обрабатывать globally любой click event и keypress event

$(document).ready(function(){
  $(document).on('keypress click','button,input,textarea', function(e){
    if (e.which === 32 || (e.type === 'click' && e.currentTarget.localName =="button")) {
     console.log("which "+ e.which);
      console.log("Type "+ e.type);
      $("#result").html(" which "+ e.which + " Type "+ e.type);
      console.log($(this));
      console.log(e);
      console.log(e.currentTarget.localName);
    }
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="form-group col-4" style="margin-bottom: 20px;">
 
  <input type="text"><br/>
  <button type="button">
  Click
  </button>
  <br/>
  <span id="result"></span>
</div>

Пожалуйста, проверьте обновленную ссылку Fiddle также Нажмите здесь

1 голос
/ 23 октября 2019

Вот так:

$(function(){
    $('#div').on('keypress click', function(e){
    if (e.which === 32 || e.type === 'click') {

    }
  });
 });

Инициировать событие на `click` и` enter`

0 голосов
/ 23 октября 2019

Мне удалось достичь цели, создав два отдельных события / функции, но функции делали одно и то же.

// If Button is Clicked
$('.button').click(function() { 
//do something
});

// If space bar is pressed
$(window).keypress(function (e) {
  if (e.keyCode === 32) {
    e.preventDefault()
//do same thing as if .button is clicked)
});
...