如何从包含的js文件中引用html元素

时间:2013-12-18 20:00:19

标签: javascript jquery asp.net

我创建了这个按预期工作的测试用例:

<script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="site.js"></script>

<script>
function click_me() {
    deActivateButton("Please wait ..", "#btnX");
    activateButton("Click me 2", "#btnX");
}
</script>

<button type="button" id="btnX" onclick="click_me(); return false;">Click me
</button>

然后在site.js中保留两个小函数来停用/激活我的按钮:

function deActivateButton(btnText, id) {
    $(id).text(btnText);
    $(id).prop("disabled", true);
}

function activateButton(btnText, id) {
    $(id).text(btnText);
    $(id).prop("disabled", false);
}

这很好用,但在我的应用程序中使用代码时失败了。我正在使用带有母版页的Web表单。主页面加载包括文件:

<%Response.WriteFile("Content/Files/master_include_head.html");%>

然后在master_include_head.html中我包含了这样的实际javascript函数:

<script src="site.js"></script>

我在这里做错了什么?没有错误消息,它只是死了。我不能用这种设计引用点击按钮的id,或者是因为我包含文件的方式而导致按钮丢失的引用?它可以是缓存问题吗?

1 个答案:

答案 0 :(得分:0)

您是不是只是设置然后清除然后立即清除代码中的值?

所以你正在激活然后立即取消激活你的按钮?

只是一点点说明。为什么不使用jQuery附加您的点击事件,如下所示:

$("#btnX").click(function(e) {
     // Do stuff
});

旁注。我不确定是否需要返回虚假;你的onclick中的陈述。通常,这只包含函数名称。返回false;可用于防止事件冒泡的功能,因为你已经设置它我不确定它会有任何效果