я имею, пишут этот блок кода в jQuery для создания трех элементов после некоторых событий
$('body').append(
tmp= $('')
);
$('').appendTo("#tmp");
$('').appendTo('#tmp');
это три элемента обычно создаются и добавляются к моему DOM, но я хочу удалить их с некоторой функцией как это:
$("#close").click(function(e){
e.preventDefault();
$("#tmp").remove();
//$("#overlay").remove();
});
и после того, как я нажимаю близкое отделение, отмечающее, происходят! что случилось с моим кодом?
вот пример онлайн: mymagazine.ir/index.php/main/detail/36 - найдите, "вот предложение" проблемы jQuery в сайте, потому что язык сайта является персидским
вам нужно добавить обработчик клика на #close после вставки элемента в документ.
edit предоставляю запрошенное демо; проверено в ff36:
<html>
<head>
<title>whatever</title>
<style type="text/css">
div {
border: 1px solid black;
padding: 0.3em;
}
</style>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function ()
{
$('body').append($('<div id="tmp"/>'));
$('<div id="close">click me</div>').appendTo("#tmp");
$('<div id="box-results">contents</div>').appendTo('#tmp');
$('#close').bind('click', function ()
{
$('#tmp').remove();
return false;
});
});
</script>
</head>
<body>
</body>
</html>
edit
измените код вашего плагина с
$.ajax({
...
success: function ()
{
$('<div id="close"/>').appendTo($('#tmp'));
}
});
$('#close').click(function (e) ...);
на
$.ajax({
...
success: function ()
{
$('<div id="close"/>')
.click(function (e) ...)
.appendTo($('#tmp'))
;
}
});
Вы должны использовать метод прямой трансляции вместо щелчка. Это позволит вам добавлять / удалять элементы без изменения их поведения
$("element").live("click", function() { /*do things*/ });
Поскольку элементы с идентификаторами #tmp
и #close
создаются динамически, вы не можете использовать щелчок
на них напрямую, вам понадобится live ()
вместо метода:
$("#close").live('click', function(e){
$("#tmp").remove();
return false;
});
Live ()
Описание:
Прикрепить обработчик к событию для всех элементы, соответствующие текущему селектор, сейчас или в будущем.
Как видно, ваш элемент создается динамически (в будущем), а не при загрузке страницы.