我一直在尝试操作通过 AJAX 加载到 jQuery UI 选项卡中的内容。可以想象,这些元素是“未来”的 DOM 元素,不会被普通的 $(".someClass") 函数操作。
我读过使用 .live() 进行事件处理现在已弃用使用 jQuery 1.7+,并被新的 .on() 方法取代。
我的问题是我想隐藏的 div,当它加载到 AJAX 选项卡中时,必须在初始 DOM 加载之后进行操作,并且一开始不绑定到单击事件。
我的函数,目前包含在 $() 中,如下所示。
我认为对于使用点击处理程序的链接,我的语法是正确的,但我不确定在加载时“.hide()”我的“hiddenStory”div 的正确方法。
我还认为函数本身不应该包含在整体 $() 中?
任何帮助或建议将不胜感激。
$(function(){
// this .hiddenStory div below is what I want to hide on AJAX load
// need syntax and/or new methods for writing this function
$(".hiddenStory").hide();
// this is a function that allows me to toggle a "read more/read less" area
// on the "hiddenStory" div
$(".showMoreOrLess").on('click', (function() {
if (this.className.indexOf('clicked') != -1 ) {
$(this).removeClass('clicked');
$(this).prev().slideUp(500);
$(this).html("Read More" + "<span class='moreUiIcon'></span>");
}
else {
$(this).addClass('clicked');
$(this).prev().slideDown(500);
$(this).html("See Less" + "<span class='lessUiIcon'></span>");
}
}));
});
// prevents default link behavior
// on BBQ history stated tab panes with
// "showMoreOrLess" links
$('.showMoreOrLess').click(function (event)
{
event.preventDefault();
// here you can also do all sort of things
});
// /prevents default behavior on "showMoreOrLess" links