Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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
Javascript 在pageload之后加载的元素上使用jquery_Javascript_Jquery_Html - Fatal编程技术网

Javascript 在pageload之后加载的元素上使用jquery

Javascript 在pageload之后加载的元素上使用jquery,javascript,jquery,html,Javascript,Jquery,Html,我想检查某个按钮是启用还是禁用,但该按钮是在页面加载后添加的。我该怎么做 “我的代码”需要在禁用按钮时显示消息,并在启用代码时删除消息 我的代码: jQuery(document).ready(function() { "use strict"; if(jQuery('#checkoutbtn').prop(':disabled')){ console.log('disabled'); jQuery("#voorwaarden").css("display", "inl

我想检查某个按钮是启用还是禁用,但该按钮是在页面加载后添加的。我该怎么做

“我的代码”需要在禁用按钮时显示消息,并在启用代码时删除消息

我的代码:

jQuery(document).ready(function() {
    "use strict";

if(jQuery('#checkoutbtn').prop(':disabled')){
    console.log('disabled');
    jQuery("#voorwaarden").css("display", "inline-block");
}else{
    console.log('enabled');
    jQuery("#voorwaarden").css("display", "none");
}
});
我的html代码:

<div class="checkoutvoorwaarden" id="voorwaarden">Ga akkoord met onderstaande voorwaarden om door te gaan:</div>
<button type="submit" title="<?php echo $this->__('Place Order') ?>" disabled="disabled" class="button btn-checkout" id="checkoutbtn" onclick="review.save();"><span><?php echo $this->__('Place Order') ?></span></button>
<p><input type="checkbox" class="checkbox chk" id="voorwaarden" style="display:inline;" required/><b> Ik ga akkoord met de algemene voorwaarden <em style="color:#ff2727;">*</em></b></p>
<p><input type="checkbox" class="checkbox chk" id="geboorte" style="display:inline;"/><b> Ik ben ouder dan 18 jaar <em style="color:#ff2727;">*</em></b></p>

但是我不知道如何使用这个.on'change'作为.is:disabled属性。

您可以将代码包装在document.ready中。它将在创建按钮后执行,这意味着已加载完整的文档

$(document).ready(function(){
if(jQuery('#checkoutbtn').is(':disabled')){
    console.log('disabled');
    jQuery("#voorwaarden").css("display", "inline-block");
}else{
    console.log('enabled');
    jQuery("#voorwaarden").css("display", "none");
}
})
片段

$document.readyfunction{ 如果jQuery'checkoutbtn'.为“:已禁用”{ console.log'disabled'; jqueryvoorwarden.css显示,内联块; }否则{ console.log“已启用”; jqueryvoorwarden.css显示,无; } } Ga akkoord与onderstaande voorwaarden和door te gaan会面:
您需要检查按钮元素是否存在,如下所示:

这将检查第一个按钮是否已加载,如果已加载,则只有您的功能才能工作

if ( $( "#checkoutbtn" ).length ) {

   if(jQuery('#checkoutbtn').prop(':disabled')){
    console.log('disabled');
    jQuery("#voorwaarden").css("display", "inline-block");
}else{
    console.log('enabled');
    jQuery("#voorwaarden").css("display", "none");
}

}

JQUERY官方参考:

如果您想在元素上进行交互,则需要在添加元素后运行代码

var interval = window.setInterval(function(){
    if(jQuery('#checkoutbtn').length){
        //Check if element exists.
        window.clearInterval(interval);//Make sure we stop.
        if(jQuery('#checkoutbtn').is(':disabled')){
            console.log('disabled');
            jQuery("#voorwaarden").css("display", "inline-block");
        }else{
            console.log('enabled');
            jQuery("#voorwaarden").css("display", "none");
        }
    }
},1000);
如果它来自Ajax请求,则可以使用成功处理程序

如果它是一个添加元素的函数,请在完成工作后调用您的方法

您可以使用代码创建事件处理程序,并在每次需要时触发该事件

如果由于X或Y的原因,所有这些都失败了,您还可以使用间隔轮询文档,以便在添加元素后能够执行操作

var interval = window.setInterval(function(){
    if(jQuery('#checkoutbtn').length){
        //Check if element exists.
        window.clearInterval(interval);//Make sure we stop.
        if(jQuery('#checkoutbtn').is(':disabled')){
            console.log('disabled');
            jQuery("#voorwaarden").css("display", "inline-block");
        }else{
            console.log('enabled');
            jQuery("#voorwaarden").css("display", "none");
        }
    }
},1000);

请注意,这是最后的手段。使用前3个命题,您应该有很多其他的可能性。

请向我们展示添加按钮的代码。页面加载后,按钮是以哪种方式添加的$document.ready来得太早?@dave我正在使用Magento,所以我不确定技术细节,但我会在问题中添加我的html代码。@twan最后一个代码段onchange事件有什么问题?。为什么包括is::disabled?它只关注单个元素,而不是multiple@prasad那部分很好用,它检查是否有1个或两个复选框未选中,如果是,则禁用按钮。我添加它是为了表明这段代码是有效的,所以我想我需要做一些类似的事情,但我不确定如何检查按钮是否被禁用。已经是了,我应该在我的问题中添加,我编辑了ityou document ready函数未正确关闭检查此}是对}的无效关闭更改,它已正确关闭,我自己很快添加了它,这是一个默认的magento文件。我还添加了一些额外的信息,如“如果它来自Ajax请求,您可以使用成功处理程序。”