0
<script>

   $(document).ready(function() {   
   $(".tweets").liveTweets({operator: "#google"});
            });
</script>

我喜欢将#google 作为变量,以便我可以根据需要更改股票代码。我试图用 php 来回应。但是,它打破了实时推文 jquery。

谢谢!

4

2 回答 2

1
<?php
  $operator = "#google";
?>

<script>

   $(document).ready(function() {   
   $(".tweets").liveTweets({operator: <?php echo json_encode($operator)?>});
            });
</script>

编辑:感谢您的评论@icktoofay。

他是对的,我们不需要将输出用双引号括起来,它为我们做到了。我刚刚更新了它。

于 2013-04-20T22:59:28.413 回答
0

HTML属于.html文件,CSS属于.css文件,JS属于.js文件。如果你想从服务器(在这种情况下是 PHP)向 JavaScript 传递额外的数据,你应该使用[data-*]attributes

无论您在哪里定义.tweets元素,都应该将要用作operator自定义data-*属性的值传递:

HTML:
<?php
    $operator = '#google';
?>
<div class="tweets" data-operator="<?php echo htmlspecialchars($operator) ?>">
    ...contents...
</div>

在您单独的 JS 文件中,您可以在初始化小部件时使用自定义服务器变量:

JS:
$('.tweets').each(function () {
    $(this).liveTweets({
        operator: $(this).data('operator')
    });
});

或者,您可以使用该data-*属性来包含整个 JSON 对象来初始化小部件:

HTML:
<?php
    $liveTweets = array(
        'operator' => '#google'
    );
?>
<div class="tweets" data-live-tweets="<?php echo htmlspecialchars(json_encode($liveTweets)) ?>">
    ...contents...
</div>
JS:
$('.tweets').each(function () {
    $(this).liveTweets($(this).data('liveTweets'));
});

此外,您可以根据具有适当data-*属性的条件选择元素:

JS:
$('[data-live-tweets]').each(function () {
    $(this).liveTweets($(this).data('liveTweets'));
});
于 2013-04-20T23:08:41.523 回答