JQuery美元.包含总是返回false的方法
JQuery $.contains method always returning false
我在这部分JQuery代码中遇到了一个问题:
$(".roomblock_slots li").droppable({ activeClass: "drop_here", hoverClass: "hover_here", tolerance: "pointer",
drop: function (event, ui) {
var container = $(this);
if (container.contains(container,"div")) {
return false;
}
return true;
} });
我试图将一个元素放入一个li元素,我想检查它是否包含一个div元素。问题是,函数本身总是返回false,并且永远不会进入"return false;",即使li包含div元素,如:
<li class="ui-droppable">
<div class="ui-draggable">
</li>
如何解决这个问题?
实用程序方法$.contains
不像您期望的那样工作。
它接受的参数是:container
和contained
,您可以这样使用它:
$.contains(container, contained)
两个参数都应该是DOM元素…而不是jQuery对象或选择器
所以在您的情况下,因为您没有寻找包含在另一个特定元素中的特定元素,所以您不能使用$.contains
-您必须使用另一种方法。
我建议使用.find
并计算有多少匹配:
if (container.find("div").length > 0) {
}
当然,如果您只想查看直接子节点,请使用:
if (container.children("div").length > 0) {
}
链接时,您将做:
if ( container.has('div') ) {...}
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 捕捉到最近的标记方法总是返回false
- Android WebView 应该覆盖 UrlLoad,我应该调用超级方法还是只返回 false
- 在默认情况下将可枚举设置为 false 的 JS 中创建对象属性的其他方法是什么
- Ext.window.MessageBox 可拖动 false,调用隐藏方法时出错
- Jquery AJAX 提交表单,即使 confirm() 方法为 false
- 如何使用Angular 1.5 component()方法将scope设置为false
- 按下按钮我的网页正在重新加载?我尝试过从js返回false之类的方法,但仍然没有解决方案
- 监视一个方法与西农.方法绑定到事件侦听器.方法已执行,但.calledOnce为false
- 在这种情况下,java脚本中对象方法的比较返回false
- Coffeescapet类方法总是返回false
- Backbonejs只有在传入async:false作为fetch()方法的参数时才会获取值
- JQuery美元.包含总是返回false的方法
- JavaScript -内部的JavaScript排序方法对数字数据进行排序- True或False
- 当返回false时,JQuery验证自定义方法不显示
- jQuery如何在$.ajax方法中实现async:false
- Jquery中是否有async:false的替代方法?
- 根据对象映射检查数组中是否有任何值为false的最有效方法
- Bcrypt-nodejs比较方法每次返回false
- 更简单的方法是让RegExp.test()对空值返回false