我正在创建一个确认框,用户将在其中单击删除,然后它会询问他们是否确定。
这是 html
<a href="" class="delete" >Delete</a>
这是 JS 处理程序
(function($){
var deleteBox = '<span class="deleteBox"><p>Are you sure you want to delete?</p><span class="cancel">Cancel</span><span class="confirm">Yes</span></span>';
$(document).on('click', '#deleteproduct', (function(){
$(this).append(deleteBox);
}).click(function(){
if(!$(this).hasClass('selected')){
$(this).addClass('selected');
var owner = $(this);
$(this).find('.cancel').unbind('click').bind('click',function(){
owner.removeClass('selected');
return false;
})
$(this).find('.confirm').unbind('click').bind('click',function(){
$(this).parent().addClass('loading');
var parent = $(this).parent();
//ajax to delete
setTimeout(function(){ //On success
parent.addClass('deleted');
setTimeout(function(){
owner.fadeOut(600);
//remove item deleted
setTimeout(function(){
owner.find('.deleted').removeClass('loading').removeClass('deleted');
owner.removeClass('selected');
owner.show();
},1000)
},1000)
},1000)
return false;
})
}
return false;
}));
})(jQuery);
这是它显示的错误
TypeError: (intermediate value).click is not a function at this line ...... }).click(function(){
我该如何解决这个错误?
问题是您尝试向click
的结果添加处理程序.on()
,这显然不受支持。如果要将处理程序添加到deleteBox
,则需要
deleteBox.click(function() {/*Do something*/});
编辑:
这是如何应用这个想法:
(function($){
var deleteBox = '<span class="deleteBox"><p>Are you sure you want to delete?</p><span class="cancel">Cancel</span><span class="confirm">Yes</span></span>';
$(document).on('click', '#deleteproduct', (function(){
$(this).append(deleteBox);
}));
$(deleteBox).click(function(){
if(!$(this).hasClass('selected')){
$(this).addClass('selected');
var owner = $(this);
$(this).find('.cancel').unbind('click').bind('click',function(){
owner.removeClass('selected');
return false;
})
$(this).find('.confirm').unbind('click').bind('click',function(){
$(this).parent().addClass('loading');
var parent = $(this).parent();
//ajax to delete
setTimeout(function(){ //On success
parent.addClass('deleted');
setTimeout(function(){
owner.fadeOut(600);
//remove item deleted
setTimeout(function(){
owner.find('.deleted').removeClass('loading').removeClass('deleted');
owner.removeClass('selected');
owner.show();
},1000)
},1000)
},1000)
return false;
})
}
return false;
});
})(jQuery);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句