使用 new[ish] .on 语法很容易绑定到用户触发的事件。例如:
$(document).on('click', '#my-div', function() {
alert("You clicked it!");
});
但是绑定到用户可能不会触发的东西呢?
$(document).on('somethingaddedtoDOM', '#my-element', function() {
alert("Nothing");
});
这是一个 jsFiddle,可以更好地了解我在说什么。 http://jsfiddle.net/NedRW/3/
好的,这是一个类似的问题。假设我想在 DOM 中动态添加一个滑块。sudoSlider 这个例子。让我们使用 Mustache.js 和 Mustache.jquery 插件:
html
...
<div id="slider-target-container">
</div>
...
查看型号:
var viewModel = [
{
image: "path-to-image"
},
{
image: "path-to-image"
},
{
image: "path-to-image"
}
];
小胡子模板
<script type="text/html" id="slider-template">
<div id="slider">
<ul>
<li>{{image}}</li>
</ul>
</div>
</script>
Javascript
$(document).ready(function() {
$.Mustache.addFromDom();
var html = $('#slider-template');
$('#slider-target-container').appendTo(mustache.render(html, viewModel);
});
现在,显然我需要在我新创建的滑块 HTML 上调用 sudoSlider 插件。但据我所知,我不能用新的 .on() 方法做到这一点
过去的工作:
$('#slider').live(function() {
$(this).sudoSlider();
});
但是现在,据我所知,我无法将新项目添加到 dom 中(如果是,则使用特定的标识符),因此我无法将插件绑定到可能尚不存在的事物上。这更有意义吗?