2

我想在更改事件目标项时触发单击事件。jQuery 解决方案不是强制性的。

常规触发有效,而自定义触发无效。

这个常规示例有效:

$(tab).trigger('click');

另一方面,这个不:

let event = $.Event('click');
event.target = otherTab;
$(tab).trigger(event);

我错过了什么吗?

编辑(尝试香草方式):

 let e = new Event('click'); // tab and otherTab are jQuery objects
 e.target = otherTab[0];
 tab[0].dispatchEvent(e);

哪个被触发但 e.target 未设置并且仍然为空。

4

1 回答 1

1

基于 Element.click() https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/click

然后,此事件会冒泡到文档树(或事件链)中更高的元素并触发它们的单击事件。

 function divClicked(ev){
  console.log("Div clicked");
  alert("Test");
 }
 
 function dispatchToOtherElement(){
  let divWithEvent = document.getElementById("divWithEvent");
  divWithEvent.click();
 }
<div id=divWithEvent onclick="divClicked()">
Element with event
</div>

<div id=divWithoutEvent onclick="dispatchToOtherElement()">
Element without event
</div>

于 2019-03-15T09:59:37.607 回答