如何将指向JavaScript的链接更改为自动运行
How to change a link pointing to JavaScript to run automatically?
如果我有JavaScript函数,当我点击链接时,它只被调用。
我如何自动运行JavaScript?
请注意,我尝试了很多方法,但都不起作用。
代码为:
<div align="left"><a href="javascript:show_desc(document.getElementById('d_<?php echo $item->id;?>'));" class="tablchet" ><?php echo $item->name;?></span></a></div>
为了正确地分离表示(HTML)和行为(JS),我们不会在HTML标记中包含任何JS。我们也不会在标签类型和JS函数之间创建依赖关系,所以我们的代码将是
<div align="left">
<a href="" data-id="<?php echo $item->id; ?>" class="tablchet">
<span><?php echo $item->name; ?></span>
</a>
</div>
甚至是下面的
<div align="left">
<span data-id="<?php echo $item->id; ?>" class="tablchet"><?php echo $item->name; ?></span>
</div>
对于演示来说,这是可以的。现在,使用一些JS到一个单独的文件中,该文件包含在带有<script src="behavior.js"></script>
的演示HTML之后,或者直接到<script></script>
之间的HTML文档中。
JS可以如下:
// Create a function allow you to manipulate the item clicked and the item targeted (with the id).
var showDesc = function (sender, target) {
// When the sender is clicked...
sender.addEventListener("click", function (e) {
e.preventDefault();
// Do Something with the target...
console.log(target);
});
};
// This part will be executed when all HTML presentation from server will be parse.
document.addEventListener("load", function () {
// Our sender is our `class="tablchet"` markup.
var sender = document.getElementsByClassName("tablchet")[0],
// create the id name with the `data-id` information.
id = "d_" + sender.getAttribute("data-id"),
// and our target is finded with its id.
target = document.getElementById(id);
// Use our showDesc with sender and target wished.
showDesc(sender, target);
});
在页面上运行javascript的方式是使用script
标记。
您的示例如下:
<script type="text/javascript">
show_desc(document.getElementById('d_<?php echo $item->id;?>'));
</script>
好吧,你是document.getElementById
,所以,有一点很清楚,你想在加载完完整页面后调用方法,因为你在DOM准备好后得到元素。
使用JavaScript,您可以这样做。
window.onload = function() {
var show_desc = function(htmlEle) {
// do further processing.
}
var eleId = 'd_<?php echo $item->id;?>';
var htmlEle = document.getElementById(eleId);
show_desc(htmlEle);
}
如果您使用的是jQuerylib,那么您可以这样做。
$(document).ready(function() {
var show_desc = function(htmlEle) {
// do further processing.
}
var eleId = 'd_<?php echo $item->id;?>';
var htmlEle = $("#eleId");
show_desc(htmlEle);
})
相关文章:
- 单击链接时停止运行javascript
- Javascript:在新页面中打开链接并运行脚本
- JQuery 在页面上显示时不会运行视差,而是使用绝对链接
- 如何从 MVC4 链接调用 Javascript 方法(错误 JavaScript 运行时错误:对象不支持此操作)
- 使用运行时创建的链接来触发ASP.Net中隐藏按钮的单击处理程序
- 有没有一种方法可以在运行中添加CKEditor的按钮到链接插件
- Javascript 在单击超链接时运行操作
- 使用运行时逻辑链接节点.js流
- 获取在单击链接时运行的函数
- AngularJS:如何在指令编译和链接后从指令内部运行JavaScript
- 小提琴在单击链接时在结果面板中显示 JSFiddle 登录(而不是正常运行)
- 单击链接时运行 PHP SQL 查询命令
- 正文加载上的 HTML 运行 href 链接
- 是否可以使输入像链接(Chrome)一样运行
- 勾选复选框并通过单击链接运行 onclick 事件
- 单击链接后运行脚本
- 链接按钮运行的代码无效
- jQuery:使用 var 快捷方式分配数据以及如何链接功能以在加载和单击时运行
- 剑道 UI 网格命令模板单击链接即可运行
- PHP,选中复选框时如何运行链接