jQuery 隐藏 onLoad 不工作
jQuery hide onLoad not working
Rails 5.1 应用程序,使用 jquery-rails(加载 jQuery 1.12.4)。我有一个功能包含在正在运行的页面的 header 中。我修复了一个与此无关的缺失 JS 文件函数错误,现在它在加载时看起来正确,然后翻转(看起来是在 Rails 控制台中加载收藏夹图标时)。如果我导致缺少方法错误(在客户端验证 JS 中),那么这段代码可以正常工作,这意味着我还有其他事情要做。
翻转后,.togglebutton
将不起作用(此问题已通过下面 Josh 的评论修复)
可以在此处看到此行为:https://www.patchvault.org/lodges
函数:
$(document).ready(function() {
$('.nni').toggleClass('hidden');
$('.togglebutton').click(function() {
$('.nni').toggleClass('hidden');
$('.togglebutton').toggleClass('nodisplay');
});
});
在 Josh 的下方评论(以及其他 SO 搜索)后更新了功能:
$(document).ready(function () {
$(window).load(function () {
$('.nni').toggleClass('hidden');
$(document).on('click', '.togglebutton', function() {
$('.nni').toggleClass('hidden');
$('.togglebutton').toggleClass('nodisplay');
});
});
});
切换按钮代码:
<div id="button_functions">
<a class="togglebutton nodisplay" href="javascript:;">Hide No Known Issue Lodges (16)</a>
<a class="togglebutton" href="javascript:;">Show No Known Issue Lodges (16)</a>
</div>
相关CSS:
.hidden,
.nodisplay { display: none; }
LI(示例):
<ul class="lodge-list">
<li class="lodge nni">
<a href="/lodges/2a-trenton"><img alt="No known issues for 2A" style="width: 200px;" src="/assets/no_known_issues@2x.png"></a>
<p class="lodge-name">
<a href="/lodges/2a-trenton"><b>2</b> Trenton</a><br>
<span>
(2A)
</span>
</p>
</li>
<li class="lodge ">
<a href="/lodges/2-5a-ntiasohen-gattopuin"><img alt="2.5 Ntiasohen Gattopuin" class="featured-image-home" src="https://patchvault.s3.amazonaws.com/uploads/issue/image/4114/list_Fish_Flap_1992.jpg?X-Amz-Expires=600&X-Amz-Date=20180711T120316Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIOPOW7QY5HS62KZA/20180711/us-east-1/s3/aws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=19a5afd4d18ccb7951c756a4916aef200026ac447f45452ca66427480a6f0d27"></a>
<!-- <= link_to image_tag(lodge.issues.first.image_url(:list)),
lodge_path(
lodge.slug
) %> -->
<p class="lodge-name">
<a href="/lodges/2-5a-ntiasohen-gattopuin"><b>2.5</b> Ntiasohen Gattopuin</a><br>
<span>
(2.5A)
</span>
</p>
</li>
[ Other lodges are one of these two styles ]
</ul>
目前是 运行。如果我重新引入控制台错误(rails client-side 表单验证丢失文件),它会起作用。但是一定有其他事情发生,我在这里做错了导致这个。有什么想法吗?
好的,所以我最终能够解决这个问题的方法比其他任何方法都简单:
我有 rails ERB 将 "nni" 设置为 class 设置 "nni hidden"。因此,这两个 classes 都适用于页面加载。从那里开始,JS 更简单:
$(document).ready(function () {
$(document).on('click', '.togglebutton', function() {
$('.nni').toggleClass('hidden');
$('.togglebutton').toggleClass('nodisplay');
});
});
可能也是实现 simpler/cleaner 的方法,但它确实有效。
Rails 5.1 应用程序,使用 jquery-rails(加载 jQuery 1.12.4)。我有一个功能包含在正在运行的页面的 header 中。我修复了一个与此无关的缺失 JS 文件函数错误,现在它在加载时看起来正确,然后翻转(看起来是在 Rails 控制台中加载收藏夹图标时)。如果我导致缺少方法错误(在客户端验证 JS 中),那么这段代码可以正常工作,这意味着我还有其他事情要做。
翻转后,.togglebutton
将不起作用(此问题已通过下面 Josh 的评论修复)
可以在此处看到此行为:https://www.patchvault.org/lodges
函数:
$(document).ready(function() {
$('.nni').toggleClass('hidden');
$('.togglebutton').click(function() {
$('.nni').toggleClass('hidden');
$('.togglebutton').toggleClass('nodisplay');
});
});
在 Josh 的下方评论(以及其他 SO 搜索)后更新了功能:
$(document).ready(function () {
$(window).load(function () {
$('.nni').toggleClass('hidden');
$(document).on('click', '.togglebutton', function() {
$('.nni').toggleClass('hidden');
$('.togglebutton').toggleClass('nodisplay');
});
});
});
切换按钮代码:
<div id="button_functions">
<a class="togglebutton nodisplay" href="javascript:;">Hide No Known Issue Lodges (16)</a>
<a class="togglebutton" href="javascript:;">Show No Known Issue Lodges (16)</a>
</div>
相关CSS:
.hidden,
.nodisplay { display: none; }
LI(示例):
<ul class="lodge-list">
<li class="lodge nni">
<a href="/lodges/2a-trenton"><img alt="No known issues for 2A" style="width: 200px;" src="/assets/no_known_issues@2x.png"></a>
<p class="lodge-name">
<a href="/lodges/2a-trenton"><b>2</b> Trenton</a><br>
<span>
(2A)
</span>
</p>
</li>
<li class="lodge ">
<a href="/lodges/2-5a-ntiasohen-gattopuin"><img alt="2.5 Ntiasohen Gattopuin" class="featured-image-home" src="https://patchvault.s3.amazonaws.com/uploads/issue/image/4114/list_Fish_Flap_1992.jpg?X-Amz-Expires=600&X-Amz-Date=20180711T120316Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIOPOW7QY5HS62KZA/20180711/us-east-1/s3/aws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=19a5afd4d18ccb7951c756a4916aef200026ac447f45452ca66427480a6f0d27"></a>
<!-- <= link_to image_tag(lodge.issues.first.image_url(:list)),
lodge_path(
lodge.slug
) %> -->
<p class="lodge-name">
<a href="/lodges/2-5a-ntiasohen-gattopuin"><b>2.5</b> Ntiasohen Gattopuin</a><br>
<span>
(2.5A)
</span>
</p>
</li>
[ Other lodges are one of these two styles ]
</ul>
目前是 运行。如果我重新引入控制台错误(rails client-side 表单验证丢失文件),它会起作用。但是一定有其他事情发生,我在这里做错了导致这个。有什么想法吗?
好的,所以我最终能够解决这个问题的方法比其他任何方法都简单:
我有 rails ERB 将 "nni" 设置为 class 设置 "nni hidden"。因此,这两个 classes 都适用于页面加载。从那里开始,JS 更简单:
$(document).ready(function () {
$(document).on('click', '.togglebutton', function() {
$('.nni').toggleClass('hidden');
$('.togglebutton').toggleClass('nodisplay');
});
});
可能也是实现 simpler/cleaner 的方法,但它确实有效。