我有一个包含大量图片和一个js图像编辑器的网站。我想做的就是在图像上双击以在编辑器中打开它,当我按下保存(我的按钮下面的编辑器生成图像数据URL)根据编辑器更新它。现在代码。
$("body").delegate("img",'dblclick', function(){
var parent = $(this).parent()
var input = parent.find("input[name$='-source']").first();
var source = input.val();
var self = $(this);
$("#save_struct_button").on('click',function(){
var self_this = $(this)
//editor is the instance of image editor
editor.saveImage(self,input);
}); });
问题是当我第一次点击#save_struct_button
时,一切正常,但第二次没有。似乎第一个onclick保持连接到按钮。
有什么建议锄头实现这个?
感谢
编辑:我的第二次尝试是返回这样的功能:
$("#save_struct_button").on('click',function(){
var self_this = $(this);
return function(self,input){
editor.saveImage(self,input);
}(self_this,input);*/
});
但仍然没有运气:)。
答案 0 :(得分:0)
您可以使用.off()删除以前的处理程序,但更好的选择是使用共享变量,如
INSERT INTO details (repo_phyid,
repo_type,
repo_attrname,
repo_attrvalue,
req_phyid,
req_type,
req_attrname,
req_attrvalue)
SELECT demo.phyid,
'Complementary Item',
'Product Management Responsible',
demo.attr_value,
tnr.phyid,
'Complementary Item',
req_attrname,
demo.attr_value
FROM repo_tnr tnr
JOIN repo_tnr_tttribute demo ON tnr.phyid = demo.phyid
CROSS JOIN (SELECT '**Product Manager**' AS req_attrname FROM dual
UNION ALL
SELECT '**Quality Manager**' AS req_attrname FROM dual
UNION ALL
SELECT '**Depty Engineer**' AS req_attrname FROM dual) t
WHERE demo.attr_name = 'Product Management Responsible' AND
tnr.type = 'Complementary Item'
如果您想继续使用您的结构,请使用.off(),如
var $imginput, $img;
$("body").delegate("img", 'dblclick', function () {
var parent = $(this).parent()
var $imginput = parent.find("input[name$='-source']").first();
var source = $imginput.val();
var $img = $(this);
});
$("#save_struct_button").on('click', function () {
if (!$imginput) {
return;
}
var self_this = $(this);
//editor is the instance of image editor
editor.saveImage(self, input);
});