Проблемы с Jquery - PullRequest
       15

Проблемы с Jquery

0 голосов
/ 28 февраля 2011
function drawLabel(labelsIndex) {

    // Check not deleted Label data:(DBID, text, styling, x, y, isDeleted)
    if (!labelData[labelsIndex][5]) {

    // Create
    var newLabel = $('<div id="label' + labelsIndex + '" style="font-size:' + (labelData[labelsIndex][6] * currentScale)  + 'px;z-index:9999;position:absolute;left:' + labelData[labelsIndex][3] + 'px;top:' + labelData[labelsIndex][4] + 'px;' + labelData[labelsIndex][2] + '">' + labelData[labelsIndex][1] + '</div>');
    $('#thePage').append(newLabel);

    // Click edit
    $('#label' + labelsIndex).dblclick(function() {
        if (!isDraggingMedia) {

            var labelText = $('#label' + labelsIndex).html();
            $('#label' + labelsIndex).html('<input type="text" id="labelTxtBox' + labelsIndex + '" value="' + labelText + '" />');

            document.getElementById('#label' + labelsIndex).blur = (function(index) {
                return function() {
                    var labelText = $('#labelTxtBox' + index).val();
                    $('#label' + index).html(labelText);
                };
            })(labelsIndex);

        }
    });   

Код предназначен для замены текста div на текстовое поле, затем, когда фокус теряется, текстовое поле исчезает, а html divs становится значением текстового поля.

Uncaught TypeError: Cannot set property 'blur' of null
$.draggable.start.isDraggingMediaresources.js:27
c.event.handlejquery1.4.4.js:63

Я думаю, что 'Я немного путаюсь со сферой, если кто-нибудь может дать мне несколько очков, я буду признателен.Также было бы хорошо, если бы кто-то мог показать мне, как удалить функцию размытия после того, как она была выполнена (unbind?)

1 Ответ

1 голос
/ 28 февраля 2011

document.getElementById('#label' + labelsIndex).blur - это функция javascript и меньше jquery :), поэтому хэш # здесь просто не имеет значения.

$('#label'+labelsIndex).bind('blur',function (){
   //labelText value goes here //
});

РЕДАКТИРОВАТЬ

Честно говоря, ты усложняешь это:)

<div id="txt1">I am div</div>
<textarea id="txt2">I am text</textarea>


$('#edit_button').click(function (){
     var val =  $('#txt1').hide().html();// hide the div,then get value,
     $('#txt2').show().val(val);//show txtarea then put value of div into it
});

Сделай обратное для $('#save_button');

...