【问题标题】:Calling JQuery method on body load condition在身体负载条件下调用 JQuery 方法
【发布时间】:2015-07-28 05:55:09
【问题描述】:
在 php 应用程序中添加新数据和修改同一页面上的现有数据,有选择是或否的单选按钮,但它运行良好,它调用
$(document).ready(function(){
$('input[type="radio"]').click(function(){
if($(this).attr("value")=="yes"){
$(".box").hide();
$(".buttn").show();
}
if($(this).attr("value")=="no"){
$(".box").hide();
$(".buttn").show();
}
});
});
});
上述方法,但为了修改页面加载,我想根据 DB 表值将值传递给上述方法。比如在body标签上调用特定的JS方法。
【问题讨论】:
标签:
javascript
php
jquery
【解决方案1】:
如果我对你的理解很好,你只需将你的代码修改为一些自定义函数,而不是 jquery on body load..试试这个:
$.fn.myfunc = function(){
$('input[type="radio"]').click(function(){
if($(this).attr("value")=="yes"){
$(".box").hide();
$(".buttn").show();
}
if($(this).attr("value")=="no"){
$(".box").hide();
$(".buttn").show();
}
});
});
};
当您从数据库中提取内容之后,您只需调用它:
$.fn.myfunc()
如果你需要传递一些变量,你可以这样做
$.fn.myfunc(var1, var2) 但你需要适当地修改你的函数
第
【解决方案2】:
您可以在生成 HTML 页面期间执行此操作。通常,这取决于您使用的模板引擎。但是,对于普通的 PHP,它可能是这样的:
<?php
$boxClass = 'box';
$btnClass = 'buttn';
if ($valueFromDb == 'yes') {
$boxClass .= ' hidden';
} else {
$btnShow .= ' hidden';
}
?>
<!-- some HTML code -->
<div class="<?= $boxClass; ?>">Here is a box</div>
<div class="<?= $btnClass; ?>">Here is a button</div>
并将.hidden CSS 类定义为.hidden { display: none; }。这样一来,你就可以在没有 JS 的情况下隐藏所有需要的块。
UPD:此外,您可以像这样渲染整个 HTML 块,而不是在 if 条件内生成类:
<?php if ($someValue == true) { ?>
<!-- render first HTML block -->
<?php } else { ?>
<!-- render another HTML block -->
<?php } ?>
这种方式可能更合适。