【发布时间】:2015-09-17 20:03:41
【问题描述】:
我有一个可以通过 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
有人知道我做错了吗?
谢谢!
【问题讨论】:
标签: javascript jquery events triggers