javascript无法动态创建javascript alink

时间:2013-09-28 20:18:44

标签: javascript asp.net-mvc

这不起作用,不确定是什么问题。我根本不想使用href onclick,我通常在ahref链接上使用id然后执行javascript那样但我需要将参数从链接传递给函数,不确定是否还有其他替代方法?

使用参数的代码没有显示,它基本上是一个论坛链接,但它将主题加载到div

function changetotopicdetails(topicid, topicname) {
    $('#loadingAjaxs').show();
    $('#flubestext').hide();

<a href="javascript:changetotopicdetails(@following.Id, @following.ShortName);">@following.Title</a>

我通常会做类似

的事情
$('#changeuserstwohour').click(function () {
       $('#userswrap').load('@Url.Action("TrendingUsersMenutwohr", "Trending")');
    });

但是通过这样做我不能在循环(主题列表)中向函数发送参数

有什么建议吗?

答案指出我需要传递给新{}

的变量
$('#changeuserstwohour').click(function () {
       $('#userswrap').load('@Url.Action("TrendingUsersMenutwohr", "Trending", new {@theid = id, @thename = name})');
    });

2 个答案:

答案 0 :(得分:1)

您可以使用常用的点击功能,eventListener或绑定并使用数据值来指示您的用户名和趋势值。

所以你的标签看起来像

<a href="#" data-id='@following.Id' data-short-name='@following.ShortName'>@following.Title</a>

然后你常用的点击功能看起来像

$('#changeuserstwohour').click(function () {
   $('#userswrap').load('@Url.Action($(this).data(id), $(this).data(short-name)');
});

如果你有多个,你可能需要使用.each()或在每个ajax加载后调用它以确保它能够监听新对象。我没有测试这个,因为我没有真正的功能,但这应该工作!请告诉我它是怎么回事,如果你有其他问题:)

答案 1 :(得分:1)

到目前为止,这两种技术的结合是您可能真正想要的。

您的个人操作链接的标记如下所示:

 <a href="#" class="selectorForYourActions" data-id='@following.Id' data-short-name='@following.ShortName'>@following.Title</a>

然后你的点击回调看起来像

$('#idOfContainerYourLoopCreatesItemsWithin').on("click", "a.selectorForYourActions", function () {
   $('.userswrap').load('@Url.Action($(this).data(id), $(this).data(short-name)');
});

如果它们是在ID选择器选择的元素中创建的,那么它将捕获与该类匹配的任何动态创建的项目,但只处理带有标记类的锚点标记的点击,因此您可以拥有许多具有唯一性的锚点(或没有)具有正常(或不同)功能的Ids和锚。