使用新的[ish] .on语法很容易绑定到用户触发的事件。例如:如何使用jQuery.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插件。但我不能做到这一点与新。对()方法,据我可以告诉
用什么来工作:
$('#slider').live(function() {
$(this).sudoSlider();
});
但是现在,据我所知,我有没有办法,如果一个新的项目被添加到DOM(如果是这样,具有特定的标识符),所以我没有办法将插件绑定到可能还不存在的事情。这是否更有意义?
正是这样......我不明白你的问题。由于用户不会创建触发处理程序的事件,因此您必须以编程方式触发它。但由于你的问题是关于约束力,而不是触发,所以我很困惑。你试图做什么? – 2013-02-23 19:44:14