Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.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不工作动态创建的javascript alink_Javascript_Asp.net Mvc - Fatal编程技术网

javascript不工作动态创建的javascript alink

javascript不工作动态创建的javascript alink,javascript,asp.net-mvc,Javascript,Asp.net Mvc,这不起作用,不确定出了什么问题。我根本不想使用href onclick,我通常在ahref链接上使用id,然后以这种方式执行javascript,但我需要将参数从链接传递到函数,不确定是否还有其他替代方法 没有显示使用参数的代码,它基本上是一个论坛链接,但它将主题加载到div中 function changetotopicdetails(topicid, topicname) { $('#loadingAjaxs').show(); $('#flubestext').hide()

这不起作用,不确定出了什么问题。我根本不想使用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", 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)');
});
$('#idOfContainerYourLoopCreatesItemsWithin').on("click", "a.selectorForYourActions", 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>

如果在ID选择器选择的元素中创建了与该类匹配的任何动态创建的项目,则这将捕获这些项目,但仅处理对标记类的锚定标记的单击,因此您可以同时拥有许多具有唯一(或无)ID的锚定和具有正常(或不同)ID的锚定功能性。

谢谢你复制我的答案?我开始是把它作为对你答案的编辑,然后意识到它们不仅仅是语法上的修改。您将注意到,它使用jquery.on、事件冒泡和限制来表示案例。这不仅仅是一个“编辑”的区别,我想。如果你喜欢我的答案,我就用我的版本来代替它作为编辑…好吧,不用担心,没有必要“编辑”我的答案。“gut”这个词可能太强了,但这将涉及到大量的编辑,而我的观点是“编辑”的使用通常不会涉及到这些改进。没关系,很抱歉,我仓促下了结论。:)嘿,我不认为这是我需要的工作,这是伟大的,因为我不知道这是可能的。但是这种格式可能会使它无法工作?获取未使用的字符$$('#contentwrap').load('@Url.Action(“Detail”,“Topics”,new{@id=$(this.data(id),@name=$(this.data(short name)})')、函数(){$('#loadingAjaxs').hide();$('#flubestext show()).window history.pushState(null,'title','/users'))Hi,我想你可能需要扔掉第一块钱您需要看看您在这里做了什么——您正在将jquery语法混合到razor标记中。所有razor代码都在HTML发送到浏览器之前运行,因此您不能使用Url.Action帮助程序并将jquery方法结果传递给它。对于您在该注释中所做的操作,您只需调用write$('#contentwrap').load('@Url.Action(“Detail”,“Topics”,new{id=CSharp_Variable_With_id,name=CSharp_Variable_With name}),function(){callbackStuffHere();}
$('#idOfContainerYourLoopCreatesItemsWithin').on("click", "a.selectorForYourActions", function () {
   $('.userswrap').load('@Url.Action($(this).data(id), $(this).data(short-name)');
});