jQuery ready()发出-$(此)不可用,代码仅应用于一个元素
在DOM准备就绪时运行jQuery时,我遇到了一些问题 我有两个表单,每个表单都有一个,当我的代码运行时,应该加载到其他表单元素中 当用户第一次加载页面时,我希望这些选项可以随时从动作、加载目标等中获取某些属性,然后加载到中。在使用change时效果非常好,我可以在使用change时使用一个,但不能同时使用两者 HTML 1. 2. 3. A. B C JS 这适用于单个表单,但第二个表单无法加载 $document.readyfunction{ $'select.get'.readyfunction{ var action=$'select.get'.parent.attr'action'; var target=$'select.get'。数据'target'; $+target.loadaction,$'select.get'.parent.serializeArray; }; 在ready函数中将select.get更改为this会导致两个表单都无法加载 使用变更对这两种形式都非常有效,尽管这有点重复 $'select.get'.changefunction{ var action=$this.parent.attr'action'; var target=$this.data'target'; $+target.loadaction,$this.parent.serializeArray; };jQuery ready()发出-$(此)不可用,代码仅应用于一个元素,jquery,document-ready,Jquery,Document Ready,在DOM准备就绪时运行jQuery时,我遇到了一些问题 我有两个表单,每个表单都有一个,当我的代码运行时,应该加载到其他表单元素中 当用户第一次加载页面时,我希望这些选项可以随时从动作、加载目标等中获取某些属性,然后加载到中。在使用change时效果非常好,我可以在使用change时使用一个,但不能同时使用两者 HTML 1. 2. 3. A. B C JS 这适用于单个表单,但第二个表单无法加载 $document.readyfunction{ $'select.get'.readyfunct
只需在pageload上触发更改事件
$('select.get').change(function() {
var action = $(this).parent().attr('action');
var target = $(this).data('target');
$('#'+target).load(action, $(this).parent().serializeArray());
}).change(); //trigger it on pageload as well ...
只需在pageload上触发更改事件
$('select.get').change(function() {
var action = $(this).parent().attr('action');
var target = $(this).data('target');
$('#'+target).load(action, $(this).parent().serializeArray());
}).change(); //trigger it on pageload as well ...
使用将代码应用于jQuery对象中的多个select元素。此外,正如注释所示,ready方法应保留给document对象
例如:
$(document).ready(function() {
$('select.get').each(function(i) {
var action = $(this).parent().attr('action');
var target = $(this).data('target');
$('#'+target).load(action, $(this).parent().serializeArray());
});
});
请注意,在每个回调函数的每次迭代中,$this如何引用$'select.get'对象中的第i个元素。使用将代码应用于jQuery对象中的多个select元素。此外,正如注释所示,ready方法应保留给document对象
例如:
$(document).ready(function() {
$('select.get').each(function(i) {
var action = $(this).parent().attr('action');
var target = $(this).data('target');
$('#'+target).load(action, $(this).parent().serializeArray());
});
});
请注意,在每个回调函数的每次迭代中,$this是如何引用$'select.get'对象中的第i个元素的。您的第一个代码段应如下所示:
$(document).ready(function(){
$('select.get').each(function() {
var action = $('select.get').parent().attr('action');
var target = $('select.get').data('target');
$('#'+target).load(action, $('select.get').parent().serializeArray());
}
);
将ready方法更改为each方法将为使用选择器找到的每个元素运行一次定义的函数。如果您的第一个代码段如下所示:
$(document).ready(function(){
$('select.get').each(function() {
var action = $('select.get').parent().attr('action');
var target = $('select.get').data('target');
$('#'+target).load(action, $('select.get').parent().serializeArray());
}
);
将ready方法更改为each方法将为使用选择器找到的每个元素运行一次定义的函数。您不应该调用。ready对文档以外的任何内容都没有意义。没错,文档只准备了一次。您是否检查了回调中的内容?因为事实是,.ready c完全忽略已选择的元素。从->中,只能对与当前文档匹配的jQuery对象调用.ready方法…您不应该调用.ready对文档以外的任何对象都没有意义。没错,文档只准备了一次。您是否检查了回调中的内容?因为事实是,.ready完全忽略选择的元素。从->中,.ready方法只能在与当前文档匹配的jQuery对象上调用…这非常好,甚至删除了准备好的一个,非常干净。谢谢这非常好,甚至删除了准备好的一个,非常干净。谢谢这非常好与adeneo的解决方案一起,尽管我同意他的方案,因为它消除了代码重复。也帮助我消除了对ready的误解。谢谢You@KieranFJ没问题。我也更喜欢adeneo的解决方案,因为在这种情况下,您已经将处理函数绑定到元素,所以触发它是有意义的。这与adeneo的解决方案,虽然我同意他的方案,因为它消除了代码重复。也帮助我消除了对ready的误解。谢谢You@KieranFJ没问题。我也更喜欢adeneo的解决方案,因为在这种情况下,您已经将处理函数绑定到元素,所以触发它是有意义的。