Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   почему не работает код (https://javascript.ru/forum/dom-window/71073-pochemu-ne-rabotaet-kod.html)

гуня 24.10.2017 13:02

почему не работает код
 
этот работает

$("#leadTemplate").tmpl(leads).appendTo('.box-min-'+data.status+' .main_box');
$(".draggable-item").contextmenu({
                            'update lead': function(event, element) { location.href = '/lead/update/' + $(element).attr('id'); },
                            'update notes': setNotes,
                            'copy lead': function(event, element) { location.href = '/lead/create/' + $(element).attr('id'); }
                        }, 'right');


а такой нет
function contextmenu(leadsHtml) {
    $(leadsHtml).find(".draggable-item").contextmenu({
        'update lead': function(event, element) { location.href = '/lead/update/' + $(element).attr('id'); },
        'update notes': setNotes,
        'copy lead': function(event, element) { location.href = '/lead/create/' + $(element).attr('id'); }
    }, 'right');
}

leadsHtml = $("#leadTemplate").tmpl(leads);

                    $(leadsHtml).appendTo('.box-min-'+data.status+' .main_box');
                    contextmenu(leadsHtml);

гуня 24.10.2017 13:05

не работает это значит что contextmenu не применяется

Dilettante_Pro 24.10.2017 13:56

гуня,
Похоже, красное лишнее
$(leadsHtml).appendTo('.box-min-'+data.status+' .main_box');

Nexus 24.10.2017 14:02

Dilettante_Pro, jq не спотыкается, если в "конструктор" передать "jQueryObject".
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script>$(function(){
    console.log($($('body')));
});</script>

рони 24.10.2017 14:34

:write: может setNotes не определено?

гуня 24.10.2017 14:38

Цитата:

Сообщение от рони (Сообщение 468095)
:write: может setNotes не определено?

определено

добавлю что я хочу
у меня 3000 дивов с классом draggable-item
я счас рендерю по 100 дивов, и хочу сразу повесить на эти 100 дивов contextmenu
если сразу вешать на 3000 командой
$(".draggable-item").contextmenu
то работает
а на каждые 100 дивов нет

Nexus 24.10.2017 15:08

гуня, попробуйте так:
$('.box-min-'+data.status+' .main_box').append(
	$("#leadTemplate").tmpl(leads)
).find(".draggable-item:not(.handled)").addClass('handled').contextmenu({
	'update lead': function(event, element) { location.href = '/lead/update/' + $(element).attr('id'); },
	'update notes': setNotes,
	'copy lead': function(event, element) { location.href = '/lead/create/' + $(element).attr('id'); }
}, 'right');

гуня 24.10.2017 21:20

все оказалось гораздо проще
leadsHtml.contextmenu({
        'update lead': function(event, element) { location.href = '/lead/update/' + $(element).attr('id'); },
        'update notes': setNotes,
        'copy lead': function(event, element) { location.href = '/lead/create/' + $(element).attr('id'); }
    }, 'right');


Часовой пояс GMT +3, время: 09:00.