Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在动态创建的HTML中调用Javascript函数<;a>;标签不工作_Javascript_Jquery_Html_Href - Fatal编程技术网

在动态创建的HTML中调用Javascript函数<;a>;标签不工作

在动态创建的HTML中调用Javascript函数<;a>;标签不工作,javascript,jquery,html,href,Javascript,Jquery,Html,Href,这似乎是一个简单的javascript,但我觉得问这个问题太傻了。。但我不知道为什么这不起作用。我有一个在页面上动态创建一些超链接的方法。假设超链接调用一个以url为参数的可执行文件。因此,我使用href调用这个函数,该函数包含调用可执行文件的代码 非动态锚标记代码可以很好地启动exe 但是,我需要这个来处理动态超链接。我试图简化这个问题,并创建了以下内容来演示这个问题。链接没有调用我的方法。我错过了什么愚蠢的事吗?我希望这在IE中起作用 我已经尝试过一些人发布的解决方案,他们说:我应该试试hr

这似乎是一个简单的javascript,但我觉得问这个问题太傻了。。但我不知道为什么这不起作用。我有一个在页面上动态创建一些超链接的方法。假设超链接调用一个以url为参数的可执行文件。因此,我使用href调用这个函数,该函数包含调用可执行文件的代码

非动态锚标记代码可以很好地启动exe

但是,我需要这个来处理动态超链接。我试图简化这个问题,并创建了以下内容来演示这个问题。链接没有调用我的方法。我错过了什么愚蠢的事吗?我希望这在IE中起作用

我已经尝试过一些人发布的解决方案,他们说:我应该试试
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知道,您提供的解决方案只需一次就可以工作。我检查了,它也很有效。我想知道这是否会比其中一个的建议更好?我知道只有一个事件处理程序总是更好的。