点击事件只适用于第二个帖子
Click event only works on second post
以下函数只有在刷新页面后才能工作。当页面之后再次刷新时,它会再次停止工作,依此类推
<button id="moreBtn" type="button" class="archive btn btn-default col-sm-12"></button>
function ShowHideBtn() {
var newss = 5;
var numItems = $(".news").length;
hidenews = "- Show Less Products";
shownews = "+ Show More Products";
$(".news:not(:lt(" + newss + "))").hide();
$("hr:not(:lt(" + newss + "))").hide();
if (numItems >= newss) {
$(".archive").show();
$(".archive").html(shownews);
$(".archive").on("click", function (e) {
e.preventDefault();
if ($(".news:eq(" + newss + ")").is(":hidden")) {
$("hr:hidden").show();
$(".news:hidden").show();
$(".archive").html( hidenews );
} else {
$("hr:not(:lt(" + newss + "))").hide();
$(".news:not(:lt(" + newss + "))").hide();
$(".archive").html(shownews);
}
return false;
});
} else {
$(".archive").hide();
}
}
提前感谢
这是一个猜测,因为没有足够的信息来确认。请提供完整的页面HTML/code:
由于浏览器页面请求是无状态的(所以它不知道是每隔一次加载),这听起来像是一个时间问题。HTML第一次加载通常会较慢,因此,如果JS代码位于其引用的元素之后(或位于DOM就绪处理程序内),则可能无法找到.archive
元素。不过,如果这是一个时间问题,它更有可能是随机的,而不是"每隔一次页面加载"。
尝试以下操作之一:
- 将JS代码(或JS脚本include)放在它们引用的元素之后。就在关闭
</body>
标记之前,这是该选项的典型标记 -
将代码放在DOM就绪处理程序中,那么它的位置就无关紧要了。例如:
$(document).ready(function){//此处为您的代码});
或者DOM就绪的快捷版本:
$(function(){
// Your code here
});
相关文章:
- Javascript计算不适用于第二个文本字段
- Ajax 构建关系按钮有效,用于显示引导模式的第二个按钮有效,但两者不能协同工作
- 下划线.js : _.where() 使用第一个参数,但不适用于第二个参数
- 两个几乎相等的jQuery函数;一个适用于IE,一个不适用于IE
- 提交按钮仅适用于 1 个功能
- 将时间戳发布到本地商店的 OnChange 事件 - 适用于 7 个用户的团队
- JS中的事件只适用于foreach中的第一个检查表
- JavaScript中的多个按键仅适用于IE
- 第二个javascript不适用于我的联系人表单
- 具有多个属性的css转换适用于firefox,但不适用于chrome
- JavaScript不适用于第二个Tab/RadTab
- Javascript document.addEventListener仅适用于1个密钥代码
- 为什么不't这个对api的调用适用于3个字母的单词
- 用于第一个空白的正则表达式,也适用于IE8
- 导航元素的滑动背景只适用于2个元素,不能更多
- .each()方法只适用于IE中的第一个元素
- Sublime Text 3: 4个空格的制表符不只适用于javascript文件
- jQuery CSS样式只适用于iOS的第一个元素
- Javascript复选框仅适用于1个窗体
- 使用date.UTC检查两个日期范围的Javascript函数适用于除Firefox之外的所有浏览器