使用新的[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