当用户点击动态创建的链接时,如何调用JS方法.JQuery,ASP.NET MVC
How to call a JS method when user clicks at dynamically created link. JQuery, ASP.NET MVC
我在视图中动态创建一个链接来调用控制器的方法:
$(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);}
如何在用户单击链接"Delete"时调用方法HelloWorld(data)?
我曾尝试在"onclick"事件中调用代码,但HelloWorld()函数在构建标记时立即调用。但是,我想在用户点击链接时进行调用。
您正在尝试附加一个事件。您需要使用addEventListener
或attachEvent
,而不是直接将函数分配给href
。
if (window.addEventListener) {
link.addEventListener('click', HelloWorld(ee), false);
} else if (window.attachEvent) {
link.attachEvent('onclick', HelloWorld(ee));
}
这里有两个主要问题:你不应该试图通过将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功能。
`
function myHandler(event) {
alert(event.data.foo);
}
$('#imageBox1 a').on("click", {
foo: "bar"
}, myHandler);
`
使用jQuery的.on
命令,但将其用作委托。这是为了在加载页面后处理对象的创建。
例如,您可以在<body>
级别附加.on
,并说,每次单击类为"clickme"的<a>
时,它都会执行您的方法。
类似这样的东西:
$(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>');
$(document).on("click", "a", function(data){
alert(data);
});
相关文章:
- 如何从Java/scala调用js美化程序
- 是否可以在使用headerphp函数后自动调用JS函数
- 全局窗口热键在最小化chrome窗口时调用js函数
- 当用户点击动态创建的链接时,如何调用JS方法.JQuery,ASP.NET MVC
- 从PHP调用JS函数不起作用
- 如何从构造函数中调用js原型方法
- 从加载的页面调用js页面
- 在shtml中调用js函数
- 当调用JS函数具有alert()时,应用程序将被冻结
- 无法从onclick事件调用JS函数
- 如何在自动完成更新时调用JS函数
- 在单击浏览器选项卡上调用 js 函数
- 从 PHP 文件调用 js 函数
- 尝试在 PHP 代码中调用 js 函数
- 同时调用js函数yui
- 提交按钮的点击元素不调用JS函数
- 使用onclick和javascript函数,在参数中调用js-var
- 在另一个.js文件中调用js函数
- 使用grunt在angular指令中调用js文件
- 在JS文件中设置延迟以调用JS文件