Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 在初始化后禁用可选择的子级_Jquery_Jquery Ui_Jquery Ui Selectable - Fatal编程技术网

Jquery 在初始化后禁用可选择的子级

Jquery 在初始化后禁用可选择的子级,jquery,jquery-ui,jquery-ui-selectable,Jquery,Jquery Ui,Jquery Ui Selectable,我看不出这怎么会不起作用,但这是我的问题 我在一个页面上有一系列可选择的组-每个组都是表中的一行,td中的div是可选择的。并非所有td都包含一个可选择的选项-这由“忽略”类的存在表示。一个灯箱打开,然后需要将其中一个可选组中的几个孩子作为目标,并在灯箱关闭时禁用他们在其组中的可选性 我有这个html(它是一个片段,但准确): 然后,在lightbox中,我正在执行以下操作以尝试禁用相关的selectables selected children: parent.$('#row_17 td di

我看不出这怎么会不起作用,但这是我的问题

我在一个页面上有一系列可选择的组-每个组都是表中的一行,td中的div是可选择的。并非所有td都包含一个可选择的选项-这由“忽略”类的存在表示。一个灯箱打开,然后需要将其中一个可选组中的几个孩子作为目标,并在灯箱关闭时禁用他们在其组中的可选性

我有这个html(它是一个片段,但准确):

然后,在lightbox中,我正在执行以下操作以尝试禁用相关的selectables selected children:

parent.$('#row_17 td div[data-date=2012-10-22]').removeClass('selectable');
parent.$('#row_17 td div[data-date=2012-10-22]').addClass('ignore');
parent.$('#row_17 td div[data-date=2012-10-22]').removeClass('green');
parent.$('#row_17 td div[data-date=2012-10-22]').addClass('amber');
parent.$('#row_17 td div[data-date=2012-10-22]').removeClass('ui-selected');
parent.$('#row_17 td div[data-date=2012-10-22]').removeClass('ui-selectee');
(添加“琥珀色”类别和删除“绿色”纯粹改变颜色)

不管怎样,它们仍然是可选择的,颜色确实会发生变化,如果我检查它,所有的类都会被添加和删除,但你仍然可以选择它

我尝试在最后一块末尾添加以下内容:

parent.$('#row_17 td div[data-date=2012-10-22]').selectable('disable');
但这会导致错误,并告诉我“在初始化之前无法调用Selective上的方法;试图调用方法‘disable’”

有人有什么想法吗?在新的jQueryUI站点中,缺少上下文和示例,这让我非常头疼

谢谢。

请尝试使用.ready(),这将等待文档准备就绪,DOM加载并可以操作

$(document).ready(function() {
  parent.$('#row_17 td div[data-date=2012-10-22]').selectable('disable');
});
试试这个

parent.$('#row_17').selectable('option','cancel','td div[data-date=2012-10-22]');

DOM已经准备好了,该代码位于页面底部(在浏览器组装DOM后遇到),并封装在
$(document).ready()
等效文件中。是的,它位于底部,因此绝对是初始化的。如果有帮助的话,我已经注意到,如果没有最后一行,我所做的会阻止您在拖动中选择子对象,但是您仍然可以单击它们来选择它们。这有什么意义吗?!刚刚尝试过这个,但它仍然允许您单独单击它们并选择它们,但如果您拖动一个包含它们的框,它们将不会选择。谢谢你。
$(document).ready(function() {
  parent.$('#row_17 td div[data-date=2012-10-22]').selectable('disable');
});
parent.$('#row_17').selectable('option','cancel','td div[data-date=2012-10-22]');
$(document).ready(function() {
  parent.$('#row_17 td [div*="2012-10-22"').selectable('disable');
});