Объект jQuery вообще не подходит - PullRequest
2 голосов
/ 01 февраля 2012

Я хочу вставить объект ($roleOption), когда кто-то нажимает на добавленное изображение. Условие else работает нормально и именно так, как я хочу.

Но первое условие («вставить непосредственно перед изображением, если нет параметров») вообще не работает. Никаких ошибок не происходит, просто объект не добавляется.

Я неправильно использую метод prepend?

<script language="javascript" type="text/javascript">
    $(document).ready(function () {
        var $roleOption = "<div class='roleoption'><img src='@Url.Content("~/Public/images/delete.png")' alt='delete' />@Html.Raw(@DSS.WebUI.Helpers.CustomHelpers.SelectListItemsForRoleJavascript(Model.ExistingRoles, 1))</div>";

        $('img.add-role').click(function() {
            if ($(this).siblings('.roleoption').length == 0) {

                //Displaying zero as expected. So it's entering this conditional.
                console.log($(this).siblings('.roleoption').length); 
                $(this).prepend($roleOption); //However the element isn't being prepended. :/
            }
            else {
                $($roleOption).insertAfter($(this).parent().find('.roleoption:last')); //This works as expected.
            }
        });
    });
</script>

1 Ответ

4 голосов
/ 01 февраля 2012

Вы не можете вставить контент в тег <img> (это то, что prepend() пытается сделать).

Вместо этого используйте before().

...