实时更改javascript变量

时间:2013-04-15 19:18:09

标签: javascript jquery wordpress wordpress-plugin

我有一个视频网站,在源代码中我有一个名为ajax_switch.post_status的javascript变量,它有2个值,on或off。

此外,我还有一个带有2个选项的滑动按钮。此按钮打开或关闭发布到Facebook。因此,当我在10秒后发布到Facebook时播放视频。该按钮是一个jquery,所以当我按下或关闭在数据库中进行更新。如何在源代码中实时更改ajax_switch.post_status的变量,以便用户访问视频页面并停用facebook帖子而不刷新点击播放而不发布?

我在wordpress中使用它。我的职责是:

在单个php中显示按钮代码

<div class="left" id="1"></div>
<div id="ajax" style="padding-left: 10px; line-height: 13px; height: 27px; vertical-align:middle; display: table-cell;" >
    Permiteți Video Best să distribuie acest video pe Facebook cu acordul dvs. Debifând această casetă va opri distribuirea și va șterge postarea de pe cronologia dvs.
</div>
<div class="clear"></div>

<script type="text/javascript">

    $('#1').iphoneSwitch(ajax_switch.post_status, function() 
    {
        $.post(ajax_switch.templateUrl+'on.php', function(data) 
        {
            $('#ajax').html(data);
            ajax_switch.post_status = 'on';
        });
    },
    function() 
    {
        $.post(ajax_switch.templateUrl+'off.php', function(data) 
        {
            $('#ajax').html(data);
            ajax_switch.post_status = 'off';
        });
    },
    {
        switch_on_container_path: ajax_switch.templateUrl+'iphone_switch_container_off.png'
    });
</script>

发布的条件:

if(ajax_switch.post_status == 'on') 
{
    FB.api(
        '/me/video.watches',
        'post',
        { 
            'movie': '<?php  the_permalink() ?>?ex=257957417674441',
            'access_token': '<?php echo $token; ?>' 
        },
        function(response) 
        {
            if (!response || response.error) 
            {
                console.log(response.error);
            } 
            else 
            {
                console.log('Ewww!');
            }
        });
        }

2 个答案:

答案 0 :(得分:0)

我不明白“iphoneSwitch”的方法是做什么的。我希望有类似的东西:

$("#1").click(function(){
  var targetString = ajax_switch.post_status;
  $.post(ajax_switch.templateUrl + targetString + '.php', function(data) {
    $('#ajax').html(data);   
    ajax_switch.post_status = ajax_switch.post_status == 'off' ? "on" : "off";
  });
});

让我知道问题是否还有更多。

答案 1 :(得分:0)

当您编写代码时,您必须等待ajax请求响应才能更新ajax_switch.post_status

将代码移到ajax回调之外将允许它立即采取行动而不会延迟数据库。

要注意的是,您可能希望在回调中保留一些代码,以便将数据库的正确状态维护到前端客户端。您可以假设更新成功,但您可能希望在回调中进行检查,以防它失败。这样,您的客户端永远不会与您的数据库不同步。