Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.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 razor上的jquery选择器不触发事件_Javascript_Jquery_Jquery Ui_Razor - Fatal编程技术网

Javascript razor上的jquery选择器不触发事件

Javascript razor上的jquery选择器不触发事件,javascript,jquery,jquery-ui,razor,Javascript,Jquery,Jquery Ui,Razor,您能建议一下,如果下面的代码触发jqueryonchange事件,它会工作吗 <div id= "abc"> </div> @Html.Partial("partial.cshtml") onchnage事件不会触发。您正在演示的HTML结构是: <div id="abc"> </div> <select id="xyz"> </select> 因此,后者从未被发现,因为它不包含在前者中。但是,由于选择器使用的是id,

您能建议一下,如果下面的代码触发jqueryonchange事件,它会工作吗

<div id= "abc">
</div>

@Html.Partial("partial.cshtml")

onchnage事件不会触发。

您正在演示的HTML结构是:

<div id="abc">
</div>
<select id="xyz">
</select>
因此,后者从未被发现,因为它不包含在前者中。但是,由于选择器使用的是
id
,因此首先不必将其缩小到包含元素的范围。您只需根据
id
进行选择即可:

$(“#xyz”)。关于(“更改”,函数(){
警报(“hi”);
});

0
1.
函数.find()将查找所选元素的匹配子元素,但实际上,您正在查找一个“同级”元素,它是“abc”div的同级元素。一种解决方案是,您可以调用.sibles()来查找该同级元素,然后为onchange事件添加一个事件侦听器:

$('#abc').siblings('#xyz').on('change', function() {
    alert("Changes");
});

嗨,大卫。。谢谢你的回复。是的,从上个小时起我就一直在试图让它触发,但它就是不触发。。我使用了VisualStudio调试器,当页面加载时,我可以看到函数被注册,尽管没有任何警报。根据我的理解,如果这段代码是正确的,那么当我做出选择时,onchange应该触发。。我不知道如何触发和调试实际上我只想选择35; xyz inside#abc#xyz是一个局部视图,是一个可重用的组件,在应用程序内部的许多地方使用。我不想改变那些人的行为。。只有在我的div#abc中使用它时,它才应该发出警报。@kimi86:但是你的
#xyz
元素不在你的
#abc
元素中。至少在你展示的代码中没有。因此,如果您只想选择
#abc
中的一个元素,那么您的代码当前正在工作,并且正在成功地找到零个匹配元素。这听起来也像是在多元素
id
s上重复使用相同的
xyz
值,这是无效的HTML,并使JavaScript的行为未定义<代码>id
值在文档中必须是唯一的。
<div id="abc">
</div>
<select id="xyz">
</select>
$("#abc").find("#xyz")
$('#abc').siblings('#xyz').on('change', function() {
    alert("Changes");
});