首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PHP动态创建JavaScript并将其放在<script>标记之间

使用PHP动态创建JavaScript并将其放在<script>标记之间
EN

Stack Overflow用户
提问于 2012-10-18 12:35:30
回答 7查看 305关注 0票数 0

通常我会这样放JavaScript:

代码语言:javascript
复制
<head>
<title>Title goes here</title>
<script>
some JavaScript here
</script>
</head>

<body>
some codes here
</body>

但现在我有一个情况,JavaScript代码必须生成,并且与HTML文件上的LI标签的数量相等:

代码语言:javascript
复制
$('#manage-1').click(function(e) { 
    $(this).next(".manage-content-wrap").find(".manage-content").load("test-manage-1.php");
    e.preventDefault();
});
$('#manage-2').click(function(e) { 
    $(this).next(".manage-content-wrap").find(".manage-content").load("test-manage-2.php");
    e.preventDefault();
});

我有一个想法是在PHP中通过修改# JavaScript -1来创建管理,变量如下:#manage-$i和任何其他动态部分。

但是,有没有可能像这样把标签放在里面:

代码语言:javascript
复制
<head>
<title>Title goes here</title>
<script>
some JavaScript here

<?php
PHP code inside script tags
?>

</script>
</head>
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-10-18 12:45:32

好的,我想我们可以通过稍微改进一下你的技术来解决这个问题。

你真的不需要多个.click处理程序,你需要一个更好的选择器策略。

假设你用这个来包围你的LI:

代码语言:javascript
复制
<ul class="managers">
    <li><a href="" id="manage-1">Link Text 1</a></li>
    <li><a href="" id="manage-2">Link Text 2</a></li>
    <li><a href="" id="manage-3">Link Text 3</a></li>
    <li><a href="" id="manage-4">Link Text 4</a></li>
</ul>

现在,您实际上只需要一个.click处理程序:

代码语言:javascript
复制
$(".managers li a").click(function(evt) {
    evt.preventDefault();
    var mID = $(this).attr("id");
    $(this).next(".manage-content-wrap").find(".manage-content").load("test-" + mID + ".php");
});

请注意,您可能必须以这种方式修改如何找到合适的.manage-content元素,但您应该明白这一点。

同样,通过这种方式,您不会不可避免地将表示端的交互与数据捆绑在一起,并且您的代码也会变得有点枯竭。几乎任何时候,当您发现自己需要输出自动生成的代码时,除了一些细节之外,这些代码完全相同,这是一个简化方法的机会。

希望这能有所帮助!

票数 2
EN

Stack Overflow用户

发布于 2012-10-18 12:39:50

使用一个类!

没有必要为每个元素添加一行代码。为每个要启用单击事件的元素添加一个公共类。您可以将其用作选择器。它使代码变得更小更快。

HTML:

代码语言:javascript
复制
<a class="manage" data-file="test-manage-1.php">foo</a>

JavaScript:

代码语言:javascript
复制
$(document).on('click', ".manage", function(e) { 
    var elem = $(this); 
    elem.next(".manage-content-wrap").find(".manage-content").load(elem.data("file"));
    e.preventDefault();
});
票数 3
EN

Stack Overflow用户

发布于 2012-10-18 12:51:23

如果你想把你的JavaScript代码放在php标签中,那么你只需要输入下面的样式即可。

代码语言:javascript
复制
<head>
<title>Title goes here</title>
<?php echo"<script>
some JavaScript here

PHP code inside script tags


</script>";
?>
</head>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12947180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档