Lor*_*nzo 2 asp.net jquery user-controls name-mangling name-matching
我在ASP.NET中有一些用户控件,我使用的只是HTML,也就是说,没有任何代码隐藏.
我有一个控件,我有一个具有固定ID的元素,我用一些jQuery客户端脚本指向它.例如:
<div id="slider-section"></div>
<script type="text/javascript" language="javascript">
$(document).ready(function () {
var slider = $('#slider-section');
// ... do something with the jQuery Object
});
</script>
Run Code Online (Sandbox Code Playgroud)
这非常好,没有任何问题.但是这有副作用.事实上,如果我在我的页面上添加两个相同用户控件的实例,我将有两个具有相同ID的元素.
您认为哪种方法可以处理这种情况?
谢谢
小智 5
Asp.net控制器在客户端呈现时,会创建不同的ID,例如:
你定义一个文本框:
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
Run Code Online (Sandbox Code Playgroud)
如果你检查页面的源代码,你会注意到文本框ID将是这样的:
id="{GUID}_Textbox1"
Run Code Online (Sandbox Code Playgroud)
所以你需要做的是使用一个选择器来找到ID的结尾,如下所示:
<div id="slider-section"></div>
<script type="text/javascript" language="javascript">
$(document).ready(function () {
var slider = $('input[id$='TextBox1']').{youroptions};
// ... do something with the jQuery Object
});
</script>
Run Code Online (Sandbox Code Playgroud)
查看文档:http://api.jquery.com/category/selectors/
请享用 ;)