<script>
$(document).ready(function() {
$(".tweets").liveTweets({operator: "#google"});
});
</script>
我想将#google作为变量,以便我可以根据需要更改自动收报机代码。我试着用php回声。但是,它打破了现场推文jquery。
谢谢!
答案 0 :(得分:1)
<?php
$operator = "#google";
?>
<script>
$(document).ready(function() {
$(".tweets").liveTweets({operator: <?php echo json_encode($operator)?>});
});
</script>
编辑:感谢您的comment @icktoofay。
他是对的,我们不需要用双引号包装输出,它就是为我们做的。我刚刚更新了它。
答案 1 :(得分:0)
HTML属于.html
个文件,CSS属于.css
个文件,JS属于.js
个文件。如果要将其他数据从服务器(在本例中为PHP)传递给JavaScript,则应使用[data-*]
attributes。
无论您在何处定义.tweets
元素,都应将您想要用于operator
的值作为自定义data-*
属性传递:
<?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对象以初始化窗口小部件:
<?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-*
属性的条件选择元素:
$('[data-live-tweets]').each(function () {
$(this).liveTweets($(this).data('liveTweets'));
});