在页面加载时触发此脚本

Posted

技术标签:

【中文标题】在页面加载时触发此脚本【英文标题】:Trigger this script as page loads 【发布时间】:2012-06-10 19:07:36 【问题描述】:

我有一个 jQuery 脚本,它在选中(或取消选中)复选框时触发。它会导致整个页面被禁用或启用。

它按预期工作,但我必须以“编辑”模式启动页面。

我需要能够设置页面在初始加载时是在编辑模式下启动还是在禁用模式下启动。

我可以轻松地通过 php 传递一个变量 - 但我不确定在哪里/如何做,或者触发什么?

这是我的触发脚本

<script>
    $('#switch-enable').change(function()
    
        if ($('#switch-enable').is(':checked')) 
            $('#disabled-switches *').prop("disabled", false);  
         else 
            $('#disabled-switches *').prop("disabled", true);   
        
     );
</script>

【问题讨论】:

【参考方案1】:

将道具更改代码包装在一个函数中,在$(document).ready() 中调用它并通过php 在复选框上设置适当的checked 属性 例如。

<input type="checkbox" <?=$editModeOnStart?' checked="checked"':''?> id="switch-enable" />
<script>
  var handleSwitch = function()
    if ($('#switch-enable').is(':checked')) 
        $('#disabled-switches *').prop("disabled", false);  
     else 
        $('#disabled-switches *').prop("disabled", true);   
    
  
  $(function()
    handleSwitch();
    $('#switch-enable').change(handleSwitch);
  );
 </script>

【讨论】:

【参考方案2】:
$(document).ready(function() 
    var editMode = '<?php echo $editMode; ?>;
);

并使用 GET 在 php 中设置 $editMode

$editMode = $_GET['edit'];

【讨论】:

以上是关于在页面加载时触发此脚本的主要内容,如果未能解决你的问题,请参考以下文章

如何在加载页面时触发缓存文件?

Vuelidate在页面加载时多次触发

Twitter Bootstrap 选项卡显示事件未在页面加载时触发

页面加载顺序及触发的事件

PHP JS ajax在页面加载时提交表单,并且一旦另一个函数成功也会触发

在Ajax调用之后重新触发Jquery脚本