Javascript 将代码从jquery转换为prototype或dojo
如果你必须这么做Javascript 将代码从jquery转换为prototype或dojo,javascript,jquery,dojo,prototypejs,Javascript,Jquery,Dojo,Prototypejs,如果你必须这么做 function addRemoveItemNS() { var $newLi = $('<li class="special">special and new <button class="addone">I am new</button> <button class="removeme">remove me</button></li>'); $('#list9 li.special') .fin
function addRemoveItemNS() {
var $newLi = $('<li class="special">special and new <button class="addone">I am new</button> <button class="removeme">remove me</button></li>');
$('#list9 li.special')
.find('button.addone')
.unbind('click.addit')
.bind('click.addit', function() {
$(this).parent().after($newLi);
addRemoveItemNS();
})
.end()
.find('button.removeme')
.unbind('click.removeit')
.bind('click.removeit', function() {
$(this).parent().remove();
});
}
$(document).ready(function() {
addRemoveItemNS();
});
函数addRemoveItems(){
var$newLi=$('li class=“special”>special and new I am new remove me);
$('list9 li.special')
.find('button.addone'))
.unbind('click.addit')
.bind('click.addit',function(){
$(this).parent()在($newLi)之后;
addRemoveItems();
})
(完)
.find('button.removeme')
.unbind('click.removit')
.bind('click.removeit',function(){
$(this.parent().remove();
});
}
$(文档).ready(函数(){
addRemoveItems();
});
…使用prototype或dojo而不是jquery,您将如何实现它?好吧,因为您的代码中没有事件。。。或者AJAX
只是一个用词不当的愚蠢请求。好吧,因为代码中没有事件。。。或者AJAX
这只是一个用词不当的愚蠢请求。以下是如何使用Dojo主干代码(或Dojo 1.4一旦发布)来实现这一点。主干代码添加了对end()的支持,以更好地匹配原始代码。您可以通过将dojo.query(inserted)保存为变量并在两个单独的语句中调用.query()以获得相同的效果来解决这个问题,然后可以使用dojo 1.3
function addRemoveItemNS() {
var html = '<li class="special">special and new <button class="addone">I am new</button> <button class="removeme">remove me</button></li>';
var inserted = dojo.place(html, "list9");
dojo.query(inserted)
.query('button.addone')
.onclick(function(evt){
addRemoveItemNS()
})
.end()
.query('button.removeme')
.onclick(function(evt){
//Use normal DOM API for parentNode to get reference.
dojo.destroy(evt.target.parentNode);
});
}
dojo.addOnLoad(function(){
//First create #list9 node? Missing from original code.
dojo.place('<ul id="list9"></ul>', dojo.body());
addRemoveItemNS();
});
函数addRemoveItems(){
var html='- 通过使用HTML字符串,然后使用dojo.placeing,则无需调用“unbind”
- Dojo不支持绑定到DOM节点上事件的自定义名称,只支持标准DOM事件名称,如onclick、onfocus等。。支持
- Dojo默认情况下不会使被单击的DOM节点成为单击处理程序中的“this”引用,因为Dojo支持将“this”参数作为其onclick函数的一部分。这就是为什么在移除按钮单击操作中使用evt.target
function addRemoveItemNS() {
var html = '<li class="special">special and new <button class="addone">I am new</button> <button class="removeme">remove me</button></li>';
var inserted = dojo.place(html, "list9");
dojo.query(inserted)
.query('button.addone')
.onclick(function(evt){
addRemoveItemNS()
})
.end()
.query('button.removeme')
.onclick(function(evt){
//Use normal DOM API for parentNode to get reference.
dojo.destroy(evt.target.parentNode);
});
}
dojo.addOnLoad(function(){
//First create #list9 node? Missing from original code.
dojo.place('<ul id="list9"></ul>', dojo.body());
addRemoveItemNS();
});
函数addRemoveItems(){
var html='- 通过使用HTML字符串,然后使用dojo.placeing,则无需调用“unbind”
- Dojo不支持绑定到DOM节点上事件的自定义名称,只支持标准DOM事件名称,如onclick、onfocus等。。支持
- Dojo默认情况下不会使被单击的DOM节点成为单击处理程序中的“this”引用,因为Dojo支持将“this”参数作为其onclick函数的一部分。这就是为什么在移除按钮单击操作中使用evt.target