SweetAlert2 按 Return 触发时消失

问题描述 投票:0回答:1

我正在使用 document.onkeydown 在将元素选项卡到以下位置时按下 Return 键时触发:

更新:

function detectspecialkeys(e) {
  var evtobj=window.event? event : e; //distinguish between explicit event object (window.event) & implicit
  console.log('Event: ' , evtobj);
  console.log('Code: ' + evtobj.code);
  console.log('Repeat: ' + evtobj.repeat);
  if (evtobj.repeat) {return}
  if ((code==='Space') || (code==='Enter')) { // Space or Return (code:Enter)
    console.log('EObj-Sp/Return: ' , evtobj.target);
    if (evtobj.target.nodeName == 'BUTTON') {
      console.log('Inside Button'); // only see once
      var selid = '#' + evtobj.target.id;
    }
    $(#selid).trigger('singletap');
  }
}
document.onkeydown=detectspecialkeys;

我正在使用 jQuery 触摸事件来处理交互。

我正在使用此版本的 Sweet Alert2:https://rahulbhut21.github.io/SweetAlert2/

我可以看到我的处理程序正在触发并看到 console.log 正常:

$('#selid').on('singletap', function(e) {
  console.log('Inside Singletap'); // only see once
  e.preventDefault();
  swal('Test').catch(swal.noop);
  return false;  
});

当我点击 #selid 时,SweetAlert 2 警报显示正常,但当使用键盘 Return 时,它会闪烁,然后消失。我尝试实施其他地方提到的建议,但警报仍然消失。

javascript sweetalert2
1个回答
0
投票

正好需要的 detectorspecialkeys 函数:

evtobj.preventDefault();
evtobj.stopPropagation();

我相信这是需要的,因为由于传播,单击事件可能在父级上的 SweetAlert 模式之外单击,因此立即关闭它。

© www.soinside.com 2019 - 2024. All rights reserved.