sinat_36331902 2017-07-27 09:39 采纳率: 0%
浏览 634

有关trigger 与 triggerHandler的区别问题

在网上看到有关于两者区别的一篇文章,对于triggerHandler不会引起浏览器默认行为是可以理解的。但问题在于:
● 为什么typeof(trigger)时,==undefined,但是typeof(triggerHandler)时,返回的是字符串。我的理解是,
$("#si").trigger("focus",["trigger"]);
trigger()的第二个参数为focus事件函数的handler的实参;
则不论是trigger还是triggerHandler,两者应均为string类型。
还请知道的亲帮忙解答下,多谢!!

5.triggerHandler()的方法在作用上类似于trigger(),但是是有一定的区别的.
  1.triggerHandler方法不会引起浏览器默认的行为,而仅仅是执行绑定到focus事件的处理程序.(即事件的fn()函数内的内容)

 1<input type="button" id="guo" value="trigger"/>
2<button type="button" id="yan"value="triggerHandler"/>
3<input id="si" type="text"/>

 1  $(function(){
 2                     $("#guo").bind("click",function(){
 3                         $("#si").trigger("focus",["trigger"]);
 4                    });
 5                     $("#yan").bind("click",function(){
 6                         $("#si").triggerHandler("focus",["triggerHandler"]);
 7                    });
 8                     $("#si").bind("focus",function(e,handler){
 9          **  if(typeof(handler)=="undefined") handler="用户操作";                   
10                         $(this).val(handler);**
11                    });
12                 })    
  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-06 09:07
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    触发器和触发处理器都是JavaScript中的事件处理方式,用于在特定条件下触发或响应事件。它们的主要区别在于触发方式和处理逻辑的不同。

    触发器(Trigger)

    触发器是一种简单的方式,它通过设置一个条件来触发事件。当这个条件满足时,触发器就会执行其绑定的回调函数。

    示例:

    $("#myElement").on("click", function(event) {
        event.preventDefault(); // 阻止默认行为
        alert("点击了按钮");
    });
    

    在这个例子中,当元素#myElement被点击时,会显示一条消息“点击了按钮”。

    触发处理器(Trigger Handler)

    触发处理器则是一个更高级的功能,它允许你根据事件的发生来决定是否执行某个处理程序。这通常适用于需要在特定事件发生后进行复杂处理的情况。

    示例:

    $("#myButton").click(function(event) {
        event.preventDefault();
        var message = "您点击了按钮";
        alert(message);
    });
    
    // 在此处添加其他逻辑,例如:
    $(document).ready(function() {
        $("#myOtherButton").click(function(event) {
            event.preventDefault();
            var message = "您还点击了一个其他的按钮";
            alert(message);
        });
    });
    

    在这个例子中,当第一个按钮被点击时,会弹出消息“您点击了按钮”。然后,在页面加载完成后,第二个按钮被点击时,也会弹出同样的消息。

    总结

    • 触发器(Trigger)只关心事件的发生,不考虑事件如何被处理。
    • 触发处理器(Trigger Handler)结合了触发器和处理逻辑,可以根据特定事件的发生来选择要执行的动作。

    如果你的问题是因为对 typeof(trigger)typeof(triggerHandler) 的理解有误,请检查你的代码是否有误,或者提供更多的上下文信息。

    评论

报告相同问题?