我的javascript文件中的jquery函数不';我没接到电话
在我的ASP.NETMVC应用程序中,我有一个javascript文件,在脚本文件夹下的javascript文件中有一个jquery函数。该函数侦听下拉单击事件并用所选值填充文本框,如下所示,但当我单击下拉选项时,不会调用此方法,并且文本框中未设置值。当我使用调试器(F12)运行时,如果我将函数粘贴到调试器命令行中,那么单击下拉菜单就可以了!!!!不确定为什么该方法没有从javascript文件注册。下拉菜单和输入文本框是使用引导输入组创建的。下拉列表最初为空,并通过在setup()函数中读取文件来填充我的javascript文件中的jquery函数不';我没接到电话,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,在我的ASP.NETMVC应用程序中,我有一个javascript文件,在脚本文件夹下的javascript文件中有一个jquery函数。该函数侦听下拉单击事件并用所选值填充文本框,如下所示,但当我单击下拉选项时,不会调用此方法,并且文本框中未设置值。当我使用调试器(F12)运行时,如果我将函数粘贴到调试器命令行中,那么单击下拉菜单就可以了!!!!不确定为什么该方法没有从javascript文件注册。下拉菜单和输入文本框是使用引导输入组创建的。下拉列表最初为空,并通过在setup()函数中读取文
// In test.js
var testMap = {}
$(function () {
$("#dropdownlistId li a").click(function () {
var name = $(this).text();
$("#textBoxId").val(name);
});
});
function setup() {
// Read name and value pair in testMap
...
// Append names to drop down list
$.each(testMap, function (key, value) {
$("#dropdownlistId").append("<li> <a tabindex=\"-1\" href=\"#\"> " + key + "</a> </li>");
});
}
$(document).ready(function () {
setup();
});
//在test.js中
var testMap={}
$(函数(){
$(“#dropdownlistId li a”)。单击(函数(){
var name=$(this.text();
$(“#textBoxId”).val(名称);
});
});
函数设置(){
//读取testMap中的名称和值对
...
//将名称附加到下拉列表中
$.each(测试图、函数(键、值){
$(“#dropdownlistId”)。追加(“”);
});
}
$(文档).ready(函数(){
设置();
});
在我的cshtml文件中,我调用javascript文件,如下所示:
@section Scripts {
@Scripts.Render("~/scripts/test.js")
}
<div class="col-md-3">
<div class="input-group">
<input id="textBoxId" type="text" class="form-control" placeholder="Enter name" />
<div class="input-group-btn">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
<span class="caret"></span>
</button>
<ul id="dropdownlistId" class="dropdown-menu pull-right"></ul>
</div>
</div>
</div>
@节脚本{
@Scripts.Render(“~/Scripts/test.js”)
}
您遇到了一个问题,您试图绑定到尚不存在的元素。页面模板中静态存在ul#dropdownlistId
,但在DOM就绪后(通过设置函数)填充li及其子项。您可以将绑定更改为绑定到始终存在的元素(ul#dropdownlistId
),并仅对某些子元素(li a
)执行操作:
您遇到了一个问题,您试图绑定到尚不存在的元素。页面模板中静态存在ul#dropdownlistId
,但在DOM就绪后(通过设置函数)填充li及其子项。您可以将绑定更改为绑定到始终存在的元素(ul#dropdownlistId
),并仅对某些子元素(li a
)执行操作:
您遇到了一个问题,您试图绑定到尚不存在的元素。页面模板中静态存在ul#dropdownlistId
,但在DOM就绪后(通过设置函数)填充li及其子项。您可以将绑定更改为绑定到始终存在的元素(ul#dropdownlistId
),并仅对某些子元素(li a
)执行操作:
您遇到了一个问题,您试图绑定到尚不存在的元素。页面模板中静态存在ul#dropdownlistId
,但在DOM就绪后(通过设置函数)填充li及其子项。您可以将绑定更改为绑定到始终存在的元素(ul#dropdownlistId
),并仅对某些子元素(li a
)执行操作:
什么函数没有被调用<代码>$(“#dropdownlistId li a”)。单击()
?您的javascript文件(test.js)正在加载吗?查看开发人员工具时,文件是否显示在“脚本”选项卡的下拉列表中?没有调用什么函数<代码>$(“#dropdownlistId li a”)。单击()
?您的javascript文件(test.js)正在加载吗?查看开发人员工具时,文件是否显示在“脚本”选项卡的下拉列表中?没有调用什么函数<代码>$(“#dropdownlistId li a”)。单击()
?您的javascript文件(test.js)正在加载吗?查看开发人员工具时,文件是否显示在“脚本”选项卡的下拉列表中?没有调用什么函数<代码>$(“#dropdownlistId li a”)。单击()
?您的javascript文件(test.js)正在加载吗?查看开发工具时,文件是否显示在“脚本”选项卡的下拉列表中?这正是问题所在:绑定发生在元素实际出现在页面上之前。没错,就是这样。那么这是否意味着jquery方法在编译时绑定到DOM元素?绑定仍然在DOM就绪时进行,但本质上它使您不必单独绑定到每个子级。这正是问题所在:绑定发生在元素实际出现在页面上之前。对,就是这样。那么这是否意味着jquery方法在编译时绑定到DOM元素?绑定仍然在DOM就绪时进行,但本质上它使您不必单独绑定到每个子级。这正是问题所在:绑定发生在元素实际出现在页面上之前。对,就是这样。那么这是否意味着jquery方法在编译时绑定到DOM元素?绑定仍然在DOM就绪时进行,但本质上它使您不必单独绑定到每个子级。这正是问题所在:绑定发生在元素实际出现在页面上之前。对,就是这样。那么,这是否意味着jquery方法在编译时绑定到DOM元素?绑定仍然在DOM就绪时进行,但本质上是这样的,因此您不必单独绑定到每个子级。
$(function () {
$('#dropdownlistId').on('click', 'li a', function () {
$('#textBoxId').val($(this).text());
});
});