$("#bt-potrdi").click( function(e) {
e.stopPropagation();
$("#belina").css({"z-index":200}); $("body").addClass("ext");
$("#vpisok_frame").css({"z-index":250}).fadeIn(200);
});
当我点击按钮时,这个jquery代码被执行并且工作正常。我可以在没有点击事件的情况下执行此代码吗?
我想在成功执行某些数据时从php执行此代码,例如
if ($ok) {
?>
//execude ajax code
e.stopPropagation();
$("#belina").css({"z-index":200}); $("body").addClass("ext");
$("#vpisok_frame").css({"z-index":250}).fadeIn(200);
<?php
}
这可能吗? PHP是服务器端代码,所以如果可能的话,我没有找到任何好的例子
答案 0 :(得分:4)
与其他建议类似,但这并不依赖于拥有相同代码的2份副本......
if ($ok) {
?>
<script type="text/javascript">
$(function() {
$("#bt-potrdi").trigger("click");
});
</script>
<?php
如果您更改了click事件处理程序,这仍然有效。这意味着您不需要在2个地方进行任何未来的更改。
答案 1 :(得分:2)
如果我理解了这个问题,那么如果$ok
为真,你想在页面加载时执行一些javascript。要做到这一点,你应该能够做到这样的事情:
if ($ok) {
?>
<script type="text/javascript">
//execute ajax code
$("#belina").css({"z-index":200}); $("body").addClass("ext");
$("#vpisok_frame").css({"z-index":250}).fadeIn(200);
</script>
<?php
}
编辑:此外,e.stopPropagation();
无效,因为e
未在任何地方定义。
答案 2 :(得分:1)
我会设计我的代码,这样我就可以在渲染html时直接添加类和设置z-index,但是如果你想用jquery做那些,jsut将它们包装在<script>
和{{1}中所以当dom准备就绪时它们会被执行。
例如
$(document).ready(function({});
修改强>
好吧,我假设if ($ok) {
?>
//execude ajax code
<script>
$(document).ready(function{
$("#belina").css({"z-index":200}); $("body").addClass("ext");
$("#vpisok_frame").css({"z-index":250}).fadeIn(200);
});
</Script>
<?php
}
之前已经设置了e.stopPropagation();
,因为它在问题示例中也是如此。暂时删除它。
答案 3 :(得分:1)
当执行PHP脚本时会发生什么,如果$ ok的计算结果为true,那么你的jquery代码将包含在生成的文档中,如果没有,则省略。但此时,没有事件,因此以下行不起作用。
e.stopPropagation();
然而,正如jdwire建议的那样,你可以将你的javascript包装在一个脚本标签中,并让它以那种方式执行,而不是由事件触发。所以......像这样:
<?php
if ($ok) {
?>
<script type="text/javascript">
$("#belina").css({"z-index":200}); $("body").addClass("ext");
$("#vpisok_frame").css({"z-index":250}).fadeIn(200);
</script>
<?php
}
?>
答案 4 :(得分:0)
你可以echo
<script/>
标签中的代码,它将作为JavaScript运行,或者使用您拥有的代码运行,只需将它放在标签之间,它就可以了:)
但你不能这样做“活”。仅在请求ONCE页面时。
答案 5 :(得分:0)
您也可以这样做将PHP变量传递给javaScript。我认为它更清洁。
$check = 1;
?>
...
<script type="text/javascript">
var check = <?= $check; ?>;
...
if (check)
{
$("#bt-potrdi").trigger("click");
}