Jquery创建,触发en听事件

时间:2015-09-17 20:03:41

标签: javascript jquery events triggers

我有一个可以通过ajax加载内容的时间轴,或者你可以直接将内容添加到元素中。

加载ajax时;触发事件。

/* trigger */
var event = jQuery.Event( 'ajaxLoaded.timeline' );
event.element = $newThis.find('.item_open_content');
$( "body" ).trigger( event );
$this.trigger(event);

当我初始化时间线时;时间线'监听'事件并在必要时生成滚动条

$('.tl1').on('ajaxLoaded.timeline', function(e){
    var height = e.element.height()-60-e.element.find('h2').height();
    e.element.find('.timeline_open_content span').css('max-height', height).mCustomScrollbar({ 
        autoHideScrollbar:true,
        theme:"light-thin"
    }); 
});

在此示例中,第一个时间轴:http://karlienfabre.be/bas-cms/timeline-test/

现在我使用bolt cms构建时间轴,因此我只是将内容直接放在元素(第二个时间轴)中而不是ajaxload。所以我触发一个事件:

var event = jQuery.Event( 'sItemOpen.timeline' );
event.element = $newThis.find('.item_open_content');
$( "body" ).trigger( event );
$this.trigger(event);

我让时间轴听取它。

$('.tl2').on('sItemOpen.timeline', function(e){
    console.log(e.element.find('.timeline_open_content span'));

    var height = e.element.height()-60-e.element.find('h2').height();
    e.element.find('.timeline_open_content span').css('max-height', height).mCustomScrollbar({
        autoHideScrollbar:true,
        theme:"light-thin"
    }); 
});

但那不起作用......如果我在那里尝试console.log,我的事件无法进入最后一段代码。

时间表js:http://bas-cms.dev/timeline-test/js/jquery.timeline.js

有人知道我做错了吗?

THX!

1 个答案:

答案 0 :(得分:0)

如果需要,你只需要显示mCustomScrollbar,你应该解决这个问题只用于css。您可以设置元素max-height属性。如果您的内容高度大于最大高度属性,则会自动显示。

如果你的问题是jQuery创建事件和监听?你使用下面的代码。

你设置任何变量..

uint32_t