0
$("#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是服务器端代码,所以如果可能的话,我没有找到任何好的例子

4

6 回答 6

4

与其他建议类似,但这并不依赖于拥有相同代码的 2 个副本......

if ($ok) {
?>
<script type="text/javascript">
    $(function() {
        $("#bt-potrdi").trigger("click");
    });
</script>
<?php

如果您更改了单击事件处理程序,这仍然有效。这意味着您将来不需要在 2 个地方进行任何更改。

于 2012-11-06T15:34:47.057 回答
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没有在任何地方定义。

于 2012-11-06T15:32:57.333 回答
1

我会设计我的代码,以便我可以在呈现 html 时直接添加类并设置 z-index,但是如果你想用 jquery 做这些,jsut 将它们包装起来<script>$(document).ready(function({});这样它们就会在 dom 准备好时执行。

例如。

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();之前设置在某个地方,因为它也是问题示例。暂时将其删除。

于 2012-11-06T15:35:24.043 回答
1

当你的 PHP 脚本被执行时,如果 $ok 计算结果为真,那么你的 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
}
?>
于 2012-11-06T15:37:37.917 回答
0

您可以echo<script/>标签中输出代码,它将作为 JavaScript 运行,或者使用您拥有的代码,只需将其放在标签之间就可以了 :)

但是你不能做到这一点“现场”。仅当页面被请求一次时。

于 2012-11-06T15:30:45.540 回答
0

您也可以通过这种方式将 PHP 变量传递给 javaScript。我觉得它干净了很多。

$check = 1;

?>

...

<script type="text/javascript">

    var check = <?= $check; ?>;

    ...

    if (check)
    {
        $("#bt-potrdi").trigger("click");
    }
于 2012-11-06T15:45:34.817 回答