после загрузки мои данные ajax Событие Не работает. так что это проблема делегирования событий. если я использую.on(), то как я могу передать свое пользовательское событие и получить правильные данные.
$(document).ready(function(){
$.ajax({
type:"post",
url:"/echo/html/",
data: {
html: ' <div id="2013_Holidays_.xlsx" class="up-img"> <span class="file-browse" data-ext="xlsx" data-id="2013_Holidays_.xlsx">2013_Holidays_...</span></div><div id="a91234567889ba.jpg" class="up-img"><span class="file-browse" data-ext="jpg" data-id="a91234567889ba.jpg">a91234567889ba...</span></div><div id="aakanksha rajhansa.pdf" class="up-img"> <img width="70px" height="70px" onclick="show_info.call(this)"/><span class="file-browse" data-ext="pdf" data-id="aakanksha rajhansa.pdf">aakanksha rajh...</span></div>'
},
success:function(data){
$("#holder").html(data);
} });
});
$.fn.single_double_click_for_upimg = function(single_click_callback, double_click_callback, timeout) {
return this.each(function(){
var clicks = 0, self = this;
$(this).click(function(event){
clicks++;
if (clicks == 1) {
setTimeout(function(){
if(clicks == 1) {
single_click_callback.call(self, event);
} else {
double_click_callback.call(self, event);
}
clicks = 0;
}, timeout || 300);
}
});
});
}
$(".file-browse").single_double_click_for_upimg(function () {
console.log("single");
$(this).css('color', 'red');
}, function () {
console.log("duble");
$(this).css('color', 'green');
});
HTML
<div id="holder"></div>
js Fiddle http://jsfiddle.net/nilesh026/4HD3H/4/
Как и любой плагин, который требует, чтобы элементы существовали при запуске кода, вам нужно будет вызвать ваш плагин в обработчике успеха ajax
success:function(data){
$("#holder").html(data).find('.file-browse').single_double_click_for_upimg(/*opts*/);
}