启用和禁用基于even-in-jQuery的Span类

Enable and Disable a Span class based on an even in jQuery

本文关键字:even-in-jQuery Span 启用      更新时间:2024-06-21

我有一个span类,它最初应该是隐藏的,在事件发生后可见。

<span class="badge badge-xs badge-danger">2</span>

我需要它发生在以下代码上:

<script>
$(document).on("DOMSubtreeModified", "#history", function () {
    //add code to make span class visible
});
</script>

我需要的是在页面加载时隐藏该类,并在段落中更改#history id后使其可见。。

如何通过jQuery实现??

您可以使用.show().hide()来更改元素可见性。

$("span.badge").hide(); // or make it hidden in css by default
$(document).on("DOMSubtreeModified", "#history", function () {
    $("span.badge").show();
});

属性disabled仅用于输入类型字段,例如在无法在其中键入的文本字段中。但在跨度中,它没有任何作用,因为默认情况下您不能输入任何内容。

对于自定义事件,您有两个选项:

  1. 与Observer合作。您有一个订阅者和一个通知程序。

    function Observer(){
        var subscriber = [];
        return{
            addSubscriber: function(func){
                subscriber.push(func);
            },
            notify: function(){
                for(var i = 0; i < subscriber.length; i++){
                    subscriber[i]();            
                }
            }
        }
    }
    var observer = new Observer();
    function calledOnEvent(){
        $(element).hide();
    }
    observer.addSubscriber(calledOnEvent);
    function createTheEvent(){
        //Logic
        observer.notify();
    }
    
  2. 您可以使用eventListener和customEvent对象。

    document.addEventListener('event', aFunction);
    function createAEvent(){
        var event = new Event('event');
        document.dispatchEvent(event);
    }
    

在纯Javascript中,对customEvent的支持并不是很好。jQuery有一个包装器来包装这个.trigger():http://api.jquery.com/trigger/