在动态创建的HTML中调用Javascript函数<;a>;标签不工作
这似乎是一个简单的javascript,但我觉得问这个问题太傻了。。但我不知道为什么这不起作用。我有一个在页面上动态创建一些超链接的方法。假设超链接调用一个以url为参数的可执行文件。因此,我使用href调用这个函数,该函数包含调用可执行文件的代码 非动态锚标记代码可以很好地启动exe 但是,我需要这个来处理动态超链接。我试图简化这个问题,并创建了以下内容来演示这个问题。链接没有调用我的方法。我错过了什么愚蠢的事吗?我希望这在IE中起作用 我已经尝试过一些人发布的解决方案,他们说:我应该试试在动态创建的HTML中调用Javascript函数<;a>;标签不工作,javascript,jquery,html,href,Javascript,Jquery,Html,Href,这似乎是一个简单的javascript,但我觉得问这个问题太傻了。。但我不知道为什么这不起作用。我有一个在页面上动态创建一些超链接的方法。假设超链接调用一个以url为参数的可执行文件。因此,我使用href调用这个函数,该函数包含调用可执行文件的代码 非动态锚标记代码可以很好地启动exe 但是,我需要这个来处理动态超链接。我试图简化这个问题,并创建了以下内容来演示这个问题。链接没有调用我的方法。我错过了什么愚蠢的事吗?我希望这在IE中起作用 我已经尝试过一些人发布的解决方案,他们说:我应该试试hr
href=“#”onclick=“myfunc()”
。不知何故,这也不管用
这是我的密码:
function myfunc(url){
alert(url);
};
function dynfunc(){
var value = "This is a link";
var url="http://www.google.com";
var table = $("<table id='tab1'></table>");
var row = $("<tr></tr>");
var valueColumn = $("<td></td>");
$('<a href="javascript: myfunc(\'' + url + '\');"></a>').html(value).appendTo(valueColumn);
valueColumn.appendTo(row);
row.appendTo(table);
$("#div1").append(table);
};
dynfunc();
函数myfunc(url){
警报(url);
};
函数dynfunc(){
var value=“这是一个链接”;
变量url=”http://www.google.com";
变量表=$(“”);
变量行=$(“”);
var valueColumn=$(”“);
$('').html(值).appendTo(值列);
valueColumn.appendTo(行);
行。附录(表);
$(“#div1”)。追加(表格);
};
dynfunc();
假设您有以下html:
<table id="dyn">
<tbody>
</tbody>
</table>
您只需将此JavaScript用于动态添加的
,这样您就可以添加一个单击处理程序而不是多个
<script>
$(function() {
var tbl = $('#dyn'), tbody = tbl.find('tbody');
var addLink = function(url, val) {
var tr = $('<tr/>'),
td = $('<td/>').appendTo(tr),
a = $('<a/>', {href: url}).html(val).appendTo(td);
}
tbl.on('click', 'a', function() {
alert($(this).attr('href'));
});
//some ajax that calls addLink
});
</script>
$(函数(){
变量tbl=$('#dyn'),tbody=tbl.find('tbody');
var addLink=函数(url,val){
var tr=$(''),
td=$('')。附录(tr),
a=$('',{href:url}).html(val.appendTo(td);
}
tbl.on('click','a',function(){
警报($(this.attr('href'));
});
//一些ajax调用addLink
});
更改此行:
$('<a href="javascript: myfunc(\'' + url + '\');"></a>').html(value).appendTo(valueColumn);
$('<a href="#"></a>').html(value).appendTo(valueColumn).click(function(){myfunc(url) });
$('').html(value).appendTo(valueColumn);
至:
$('<a href="javascript: myfunc(\'' + url + '\');"></a>').html(value).appendTo(valueColumn);
$('<a href="#"></a>').html(value).appendTo(valueColumn).click(function(){myfunc(url) });
$(“”).html(value).appendTo(valueColumn).单击(function(){myfunc(url)});
我们将
单击
事件关联到追加
后的事件
,每次单击都会调用myfunc(url)
。尝试:$(“”)。改为单击(函数(e){e.preventDefault();myfunc(url)}
。您真的需要将该链接放在表中吗?重点是什么?我只想在链接上点击一个功能。伙计们,谢谢你们的回复。关于表格,实际上这个例子只是我实际工作的一小部分。所以,是的,我需要表格。我只是想让用户2246674知道,您提供的解决方案只需一次就可以工作。我检查了,它也很有效。我想知道这是否会比其中一个的建议更好?我知道只有一个事件处理程序总是更好的。