Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.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
Javascript 如何在用户单击动态创建的链接时调用JS方法。JQuery,ASP.NET MVC_Javascript_Jquery_Asp.net_Asp.net Mvc_Asp.net Mvc 4 - Fatal编程技术网

Javascript 如何在用户单击动态创建的链接时调用JS方法。JQuery,ASP.NET MVC

Javascript 如何在用户单击动态创建的链接时调用JS方法。JQuery,ASP.NET MVC,javascript,jquery,asp.net,asp.net-mvc,asp.net-mvc-4,Javascript,Jquery,Asp.net,Asp.net Mvc,Asp.net Mvc 4,我在视图中动态创建链接以调用控制器的方法: $(document).ready(function(){ var data="SomeDataToController"; var link=document.createElement('a'); var linkText=document.createTextNode("Delete"); link.appendChild(linkText); link.title="Title text"

我在视图中动态创建链接以调用控制器的方法:

   $(document).ready(function(){
     var data="SomeDataToController";
     var link=document.createElement('a');
     var linkText=document.createTextNode("Delete");
     link.appendChild(linkText);
     link.title="Title text";
     link.href=HelloWorld(ee); 
    document.getElementById("imageBox1").
    appendChild(link);


    }
   function HelloWorld(data){
    alert(data);}
如何在用户单击“删除”链接时调用方法HelloWorld(数据)


我尝试在“onclick”事件中调用代码,但HelloWorld()函数在生成标记时立即调用。但是,我希望在用户单击链接时调用。

您正在尝试附加事件。您需要使用
addEventListener
attachEvent
而不是直接将函数分配给
href

if (window.addEventListener) {
  link.addEventListener('click', HelloWorld(ee), false);
} else if (window.attachEvent) {
  link.attachEvent('onclick', HelloWorld(ee));
}

您正在尝试附加事件。您需要使用
addEventListener
attachEvent
而不是直接将函数分配给
href

if (window.addEventListener) {
  link.addEventListener('click', HelloWorld(ee), false);
} else if (window.attachEvent) {
  link.attachEvent('onclick', HelloWorld(ee));
}

使用jQuery的
.on
命令,但将其用作委托。这是为了在页面加载后处理对象的创建

例如,您可以在
级别附加
上的
.on,并表示每次单击带有类“clickme”的
时,它都将执行您的方法

大概是这样的:

$(body).on("click", ".clickMe", function (e) {
  e.preventDefault();
  HelloWorld('my value taken from data- attribute or whatever');
});

使用jQuery的
.on
命令,但将其用作委托。这是为了在页面加载后处理对象的创建

例如,您可以在
级别附加
上的
.on,并表示每次单击带有类“clickme”的
时,它都将执行您的方法

大概是这样的:

$(body).on("click", ".clickMe", function (e) {
  e.preventDefault();
  HelloWorld('my value taken from data- attribute or whatever');
});

我建议使用jQuery创建动态HTML

$("#imageBox1").append('<a href="' + javascript:alert(1); + '">' + text + '</a>');
$(“#imageBox1”).append(“”);

我建议使用jQuery创建动态HTML

$("#imageBox1").append('<a href="' + javascript:alert(1); + '">' + text + '</a>');
$(“#imageBox1”).append(“”);

这里有两个主要问题:您不应该试图通过将href设置为某个值来设置onclick处理程序,并且在赋值时实际上调用了
HelloWorld()
函数,因此基本上您是在赋值该函数返回到href中的任何内容

您应该使用
addEventListener
附加一个函数,该函数在单击时调用
HelloWorld()

link.addEventListener('click', function() { HelloWorld(data); })

如果您需要在版本9之前支持Internet Explorer,您还需要有相应的条件,而不是使用
attachEvent()

这里有两个主要问题:您不应该试图通过将href设置为某个值来设置onclick处理程序,并且在分配时实际上正在调用
HelloWorld()
函数,因此,基本上您是在分配该函数返回到href中的任何内容

您应该使用
addEventListener
附加一个函数,该函数在单击时调用
HelloWorld()

link.addEventListener('click', function() { HelloWorld(data); })

如果您需要在版本9之前支持Internet Explorer,还需要有相应的条件,并使用
attachEvent()

如果您希望在用户单击元素时执行JavaScript函数,可以使用类似的方法

   $(document).ready(function () {
        var data = "SomeDataToController";
        var link = document.createElement('a');
        var linkText = document.createTextNode("Delete");
        link.appendChild(linkText);
        link.title = "Delete";
        link.onclick = eval(getDeleted);
        document.getElementById("imageBox1").appendChild(link);

    });

    function getDeleted() {

        var f = "delete";
        Delete(f);
    }

    function Delete(f) {
        alert(f);
    }
但是我想使用jQuery功能,比如这样

   $(document).ready(function () {
        var data = "SomeDataToController";
        var link = document.createElement('a');
        var linkText = document.createTextNode("Delete");
        link.appendChild(linkText);
        link.title = "Delete";
        link.onclick = eval(getDeleted);
        document.getElementById("imageBox1").appendChild(link);

    });

    function getDeleted() {

        var f = "delete";
        Delete(f);
    }

    function Delete(f) {
        alert(f);
    }
`


`

如果希望在用户单击元素时执行JavaScript函数,可以使用类似的方法

   $(document).ready(function () {
        var data = "SomeDataToController";
        var link = document.createElement('a');
        var linkText = document.createTextNode("Delete");
        link.appendChild(linkText);
        link.title = "Delete";
        link.onclick = eval(getDeleted);
        document.getElementById("imageBox1").appendChild(link);

    });

    function getDeleted() {

        var f = "delete";
        Delete(f);
    }

    function Delete(f) {
        alert(f);
    }
但是我想使用jQuery功能,比如这样

   $(document).ready(function () {
        var data = "SomeDataToController";
        var link = document.createElement('a');
        var linkText = document.createTextNode("Delete");
        link.appendChild(linkText);
        link.title = "Delete";
        link.onclick = eval(getDeleted);
        document.getElementById("imageBox1").appendChild(link);

    });

    function getDeleted() {

        var f = "delete";
        Delete(f);
    }

    function Delete(f) {
        alert(f);
    }
`


`

$(链接)。单击(HelloWorld)?$(链接)。单击(HelloWorld)?我很确定他不想在文档中的所有a标记中添加一个单击处理程序我很确定他不想在文档中的所有a标记中添加一个单击处理程序这不也会立即调用HelloWorld并将其返回值设置为函数处理程序吗,而不是函数本身?这是否也会立即调用HelloWorld并将其返回值设置为函数处理程序,而不是函数本身?实现了一个示例。没有经过测试就写了,但是你得到了一个样本。没有经过测试就写了,但是你明白了