2012-06-08 5 views
2

В принципе, я хочу иметь две функции. Первый добавляет элемент div, который содержит некоторые данные ajax и кнопку, которая может запускать функцию закрытия. Первая функция делает все, что я хочу, за исключением того, что у меня возникают проблемы с применением атрибута onclick, на котором будет срабатывать функция удаления при нажатии.jquery удаление предварительно добавленного элемента

Но независимо от этого, я не смог получить remove function для работы.

Если вы можете помочь мне сделать это лучше, я буду благодарен.

function displayCrRef(refPid, refFs, pidOfReferringP) { 

    $.get("crRefParaExtract.php", { 
     pid: refPid, 
     fs: refFs 
    }, function(data) { 

     $("#pwrap_" + pidOfReferringP).prepend("<div id='#crRef_" + refPid + "' style='float: left; width: 350px; margin-right: 60px; padding: 10px; background-color: #E6EDE8'>" + "<a id='crossRefRemoveButton'>Return to normal text</a>" + data + "</div>"); 


    }); 
    var rmFxnParam = "'" + refPid + "'"; 
    $("#crossRefRemoveButton").attr("onclick", "removeCrossRef(" + rmFxnParam + ")"); 
    $("#" + pidOfReferringP).css({ 
     float: 'left', 
     width: '425px' 
    }); 
    $("#menu_" + pidOfReferringP).css({ 
     float: 'none', 
     clear: 'both' 
    }); 
    } 


    function removeCrossRef(refPid) { 
     $("#crRef_" + refPid).remove(); 

    }​ 

ответ

-3
$("#crossRefRemoveButton").addEventListener('click',function(){ 
    removeCrossRef(rmFxnParam); 
}); 
+1

почему это дали минус 1 ?? – Jeff

+0

Да, я хотел бы знать, почему это не работает. Для учебных целей за пределами курса –

+1

Я могу дать ему минус 2, если это помогает ... nvm Я вне голосования: D. Объекты jQuery не имеют метода '.addEventListener'. У них есть метод '.on'. Это может быть одной из причин. – Esailija

2

Начиная идентификатор с # не является действительным. Я считаю, что вы смешиваете значение id с помощью селекторов CSS jQuery.

[hashTag] + [ID of Element] = CSS ID Selector

Это должно работать:

function displayCrRef(refPid, refFs, pidOfReferringP) { 

    ... 
    // Remove the hash tag here: id='crRef_" + refPid + "' 
    $("#pwrap_" + pidOfReferringP).prepend("<div id='crRef_" + refPid + "' style='float: left; width: 350px; margin-right: 60px; padding: 10px; background-color: #E6EDE8'>" + "<a id='crossRefRemoveButton'>Return to normal text</a>" + data + "</div>"); 
    ... 

} 

function removeCrossRef(refPid) { 
    $("#crRef_" + refPid).remove(); 
}​ 

Дополнительная информация

ID и NAME маркеры должны начинаться с буквы ([A-Za-Z]) и может быть за которым следует любое количество букв, цифр ([0-9]), дефис («-»), подчеркивания («_»), двоеточия («:») и периоды («.»).

Ссылка: http://www.w3.org/TR/html4/types.html

+0

О, черт возьми, какая глупая ошибка. «Я знаю, как долго я бил головой о стену, но« .attr »по-прежнему не работает. Хотя я чувствую, что раньше это работало, даже если это не очень элегантный метод. – Jeff

+0

@J эфф, бывает *** *** ***. Конечно, со мной это не случилось с прошлого раза :) –

Смежные вопросы