[英]Checking if an element has a specific class in jquery not works
我被阻止了一个非常简单的功能,它与我一起工作很多次但现在不能正常工作。控制台中没有特定的错误。
我试图检查是否有一个包含.form-content.inactive
类的div的特定类.form-content.inactive
我正在尝试查找是否有另一个类opened
。
$(document).ready(function() {
if($('.form-content.inactive').hasClass('opened')){
$(".form-content a").click(function(event) {
alert('has');
});
}
});
点击没有给出警报。我现在傻了一段时间:p
如果你的div
没有从一开始就opened
课程,你应该这样做。
$(document).ready(function() {
$(".form-content a").click(function(event) {
if($('.form-content.inactive').hasClass('opened')){
alert('has');
}
});
});
否则你的代码可以正常工作..当你的div
已经在文档准备就绪之前已经opened
了类时,只有jQuery能够将你的click元素订阅到事件中。
$(document).ready(function() { if ($('.form-content.inactive').hasClass('opened')) { $(".form-content a").click(function(event) { alert('has'); }); } });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="form-content inactive opened"> <a>Click!</a> </div>
而不是检查opened
你可以使用委托: -
$(document).ready(function() { $('body').on('click', '.form-content.inactive.opened a', function(event) { alert('has'); }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="form-content inactive opened"> <a>Link</a> </div>
这将触发click事件的a
,如果.form-content
有两类.inactive
和.opened
。
如果您坚持使用hasClass
并且您有多个.form-content
那么您应该使用this
来获取最接近的.form-content
并检查这两个类。
$(".form-content a").click(function(event) {
var formContent = $(this).closest('.form-content');
if(formContent.hasClass('inactive') && formContent.hasClass('opened')){
alert('has');
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.