Могу ли я предотвратить запуск кода в элементе <script>при манипулировании одним из его родительских элементов DOM? - PullRequest
2 голосов
/ 16 февраля 2011

Вот упрощенная версия того, что я хотел бы сделать.На странице есть раздел HTML, который выглядит следующим образом:

<div id="wrap-this">
    <script>
        $(document).ready(function() {
            alert('Blah.');
        });
    </script>
</div>

И в моем собственном сценарии я делаю это:

$(document).ready(function() {
    $('#wrap-this').wrap($('<div id="new-div">'));
});

Проблема заключается в том, что когда я манипулирую DOMиспользуя wrap(), код внутри <div> вызывается снова, и я получаю два alert() s.Есть ли способ, которым я могу предотвратить это без изменения <div> или кода, который он содержит?

1 Ответ

2 голосов
/ 16 февраля 2011

Перед переносом div вы можете удалить из него все теги сценария:

var theDiv = $('#wrap-this');
theDiv.find('script').remove();
theDiv.wrap($('<div id="new-div"/>'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...