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并将其返回值设置为函数处理程序,而不是函数本身?实现了一个示例。没有经过测试就写了,但是你得到了一个样本。没有经过测试就写了,但是你明白了