Я устанавливаю событие click для div, который динамически создается в событии отбрасывания jqueryUI (часть перетаскиваемого объекта), событие click удаляет div.Это отлично работает.Внутри документа. Я делаю то же самое, основываясь на данных из локального хранилища.Я могу создать динамические div, но событие click не привязывается, или привязка теряется.Я пытался использовать "нажмите", "вживую" и "на".Я также удалил цикл, в котором он находится и просто прикреплен к первому элементу, ни один из них не работает при непосредственном размещении в $ (document) .ready, но отлично работает, когда я устанавливаю событие click в выпадающем меню.
это работает: привязка из droppable
$( "#planView" ).droppable({
drop: function( event, ui ) {
if(ui.draggable.find(".planButton").length == 1){
// make unique ID,add ID to last child,add click event last child,add plan to model with plan data and ID
var id = ui.draggable[0].id; // we use the id to grab the right cart html and cart data
var id = id.substring(0, id.length-6);
var newPlan;
var newID;
var planData;
$( this ).append(planCartObjects[id]);
newPlan = $( this ).find('>:last-child');
newID = "cartObject"+cartIDcounter++;
newPlan.attr("id",newID);
planData = $.extend(true,{},planDataObjects[id]); //makes a copy of the data object
planData.id = newID;
shoppingCart.addPlan(planData);
shoppingCart.logCart();
newPlan.click(function(){
//remove element
$(this).remove();
shoppingCart.removePlan(newID);
console.log("newID "+newID);
});
}
}
это не работает - вызывается один раз для документа .ready
$(document).ready(function() {
//check local storage
//if yes create plan and or feature cart objects
//populate model
var cartIDcounter = 0;
var localStorageKey = "vlocalstore234";
var shoppingCart;
shoppingCart = shoppingCartMaker({});
if(localStorage.getItem(localStorageKey)){
//grab cartModel, clear out local storage, calladdplan ans addfeature in a loop to create htmls objs and data obj
var cartModel = JSON.parse(localStorage.getItem(localStorageKey));
localStorage.removeItem(localStorageKey);
//update cart with saved features and plans
var i;
var l = cartModel.plans.length;
var newPlan;
var newID;
var planData;
var id;
for(i=0;i<l;i++){
console.log(cartModel.plans[i].name);
id = cartModel.plans[i].name
$( "#planView" ).append(planCartObjects[id]);
newPlan = $( this ).find('>:last-child');
newID = "cartObject"+cartIDcounter++;
newPlan.attr("id",newID);
planData = $.extend(true,{},planDataObjects[id]); //makes a copy of the data object
planData.id = newID;
shoppingCart.addPlan(planData);
shoppingCart.logCart();
newPlan.on("click",function(){
//remove element
$(this).remove();
shoppingCart.removePlan(newID);
console.log("newID "+newID);
});
}
полный кодовый блок
$(document).ready(function() {
//check local storage
//if yes create plan and or feature cart objects
//populate model
var cartIDcounter = 0;
var localStorageKey = "vlocalstore234";
var shoppingCart;
shoppingCart = shoppingCartMaker({});
if(localStorage.getItem(localStorageKey)){
//grab cartModel, clear out local storage, calladdplan ans addfeature in a loop to create htmls objs and data obj
var cartModel = JSON.parse(localStorage.getItem(localStorageKey));
localStorage.removeItem(localStorageKey);
//update cart with saved features and plans
var i;
var l = cartModel.plans.length;
var newPlan;
var newID;
var planData;
var id;
for(i=0;i<l;i++){
console.log(cartModel.plans[0].name);
id = cartModel.plans[0].name
$( "#planView" ).append(planCartObjects[id]);
newPlan = $( this ).find('>:last-child');
newID = "cartObject"+cartIDcounter++;
newPlan.attr("id",newID);
planData = $.extend(true,{},planDataObjects[id]); //makes a copy of the data object
planData.id = newID;
shoppingCart.addPlan(planData);
shoppingCart.logCart();
newPlan.live("click",function(){
//remove element
$(this).remove();
shoppingCart.removePlan(newID);
console.log("newID "+newID);
});
}
l = cartModel.features.length;
for(i=0;i<l;i++){
console.log(cartModel.features[i].name);
id = cartModel.features[i].name;
$("#featureView").append(featureCartObjects[id]);
newPlan = $( this ).find('>:last-child');
newID = "cartObject"+cartIDcounter++;
newPlan.attr("id",newID);
featureData = $.extend(true,{},featureDataObjects[id]);
featureData.id = newID;
shoppingCart.addFeature(featureData);
shoppingCart.logCart();
newPlan.click(function(){
//delete view and remove from model
$(this).remove();
shoppingCart.removeFeature(newID);
console.log("newID "+newID);
//remove from model
});
}
}
//Plans drag and drop
$( "#myPlans span" ).draggable({
start: function(event, ui) {},
stop: function(event, ui) {
$( "#chooser span" ).css({'top':'0px', 'left':'0px'});
}
});
$( "#planView" ).droppable({
drop: function( event, ui ) {
if(ui.draggable.find(".planButton").length == 1){
// make unique ID,add ID to last child,add click event last child,add plan to model with plan data and ID
var id = ui.draggable[0].id; // we use the id to grab the right cart html and cart data
var id = id.substring(0, id.length-6);
var newPlan;
var newID;
var planData;
$( this ).append(planCartObjects[id]);
newPlan = $( this ).find('>:last-child');
newID = "cartObject"+cartIDcounter++;
newPlan.attr("id",newID);
planData = $.extend(true,{},planDataObjects[id]); //makes a copy of the data object
planData.id = newID;
shoppingCart.addPlan(planData);
shoppingCart.logCart();
newPlan.click(function(){
//remove element
$(this).remove();
shoppingCart.removePlan(newID);
console.log("newID "+newID);
});
}
}
});
//features drag and drop
$("#addOnFeatures span").draggable({
start: function(event, ui){},
stop: function(event, ui){
$("#addOnFeatures span").css({'top':'0px', 'left':'0px'});
}
});
$("#featureView").droppable({
drop: function(event, ui){
if(ui.draggable.find(".featureButton").length == 1){
var id = ui.draggable[0].id;
var id = id.substring(0, id.length-6);
var newPlan;
var newID;
var featureData;
var mydata;
$( this ).append(featureCartObjects[id]);
newPlan = $( this ).find('>:last-child');
newID = "cartObject"+cartIDcounter++;
newPlan.attr("id",newID);
featureData = $.extend(true,{},featureDataObjects[id]);
featureData.id = newID;
shoppingCart.addFeature(featureData);
shoppingCart.logCart();
newPlan.click(function(){
//delete view and remove from model
$(this).remove();
shoppingCart.removeFeature(newID);
console.log("newID "+newID);
//remove from model
});
}
}
});
});