JavaScript 不起作用动态创建的 JavaScript 链接

javascript not working dynamically created javascript alink

本文关键字:JavaScript 链接 动态 不起作用 创建      更新时间:2023-09-26

这不起作用,不确定出了什么问题。我根本不想使用 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})');
    });

您可以执行通常的单击功能,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 加载后调用它以确保它侦听新对象。我还没有测试过这个,因为我真的没有功能,但这应该可以工作!请让我知道它是怎么回事,如果您有其他问题:)

到目前为止提供的两种技术的组合可能是您真正想要的。

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

 <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 选择器选择的元素中创建的,这将捕获与该类匹配的任何动态创建项,但仅处理对具有标记类的定位标记的单击,因此您既可以拥有许多具有唯一(或无)ID 的锚点,也可以拥有许多具有正常(或不同)功能的锚点。