在这个示例中,水印插件最初不起作用,因为 div "tbFirstName" 尚未加载。
$(document).ready(function () {
$('#tbFirstName').watermark('Required information');
});
(.live) Jquery 工具或 (.on) 工具似乎基于诸如“单击”或“模糊”之类的事件工作。您知道如何在将来加载的 div 上获得这种水印效果,而不必分配给用户事件吗?
非常感谢!
在这个示例中,水印插件最初不起作用,因为 div "tbFirstName" 尚未加载。
$(document).ready(function () {
$('#tbFirstName').watermark('Required information');
});
(.live) Jquery 工具或 (.on) 工具似乎基于诸如“单击”或“模糊”之类的事件工作。您知道如何在将来加载的 div 上获得这种水印效果,而不必分配给用户事件吗?
非常感谢!
你可以试试这个DOMNodeInserted
事件:
$(document).on('DOMNodeInserted','#tbFirstName',function(){
$('#tbFirstName').watermark('Required information');
});
请注意,将on()
方法附加到最接近要附加$('#tbFirstName')
元素的父元素的任何元素上很重要,否则每次将某些内容附加到 DOM 时它都会运行。
还值得注意的是,为了完成,将创建或附加该元素的watermark()
同时绑定到 DOM 会更容易、更有效。
参考:
您可以随时调用.watermark()
新的输入创建
$(function() {
$(".watermark").watermark("Write something...");
$(".btn-add").click(function() {
$(".list").append('<li><input type="text" class="watermark" /></li>');
$(".watermark").watermark("Write something...");
});
});
尝试将您的代码更改为:
$(document).ready(function () {
$('#tbFirstName').live("watermark", function(){
$('#tbFirstName').html("required info");
});
});
原因,由于元素不存在,绑定不起作用。“live” api 用于将事件动态绑定到元素。
参考:http ://api.jquery.com/live/
编辑:斯蒂芬指出“live()”不起作用,我只是在您的描述中读到相同的内容,抱歉:)
我发现我的问题是特定于 ASP.NET 更新面板的。一个帖子让我找到了正确的答案,那就是使用它:
function pageLoad(sender, args) {
...
}
而不是 $(document).ready 函数。
感谢所有提供帮助的人——非常感谢。这是有用的帖子: