0

我正在尝试创建的内容窗口的某些 JS 代码出现错误。有人告诉我 }); 不应该在哪里,但我不明白问题出在哪里。我是否使用过时的 jquery 中的术语?

jQuery(document).ready(function($) {
    $('.contentwindow_trigger').click(function(e) {

        e.preventDefault();

        var image_href = $(this).attr("href");

        if ($('#contentwindow').length > 0) { 
            $('#content').html('<img src="' + image_href + '" />');

            $('#contentwindow').show();
        }
        else { 
            var contentwindow =

            '<div id="contentwindow">' +

                '<p>Click to close</p>' +

                '<section id="content">' +
                    '<img src="#" />' +
                '</section>' +

            '</div>';
            $('body').append(contentwindow);
        }
    }); //HERE

    $('#contentwindow').on('click', function() {
        $('#contentwindow').hide();
    });
});

错误就在这里,任何帮助将不胜感激。

谢谢!

4

3 回答 3

0

使用此脚本:

 jQuery(document).ready(function() {
    $('.contentwindow_trigger').click(function(e) {

        e.preventDefault();

        var image_href = $(this).attr("href");

        if ($('#contentwindow').length > 0) { 
            $('#content').html('<img src="' + image_href + '" />');

            $('#contentwindow').show();
        }
        else { 
            var contentwindow =

            '<div id="contentwindow">' +

                '<p>Click to close</p>' +

                '<section id="content">' +
                    '<img src="#" />' +
                '</section>' +

            '</div>';
            $('body').append(contentwindow);
        }
    }); //HERE

    $('#contentwindow').on('click', function() {
        $('#contentwindow').hide();
    });
});
于 2012-11-12T20:18:38.107 回答
0

不确定您看到的语法错误是什么,但在这个 jsfiddle 中似乎可以正常工作:

http://jsfiddle.net/xV58c/

我在那里所做的一项更改可能会对您有所帮助。代替:

$('#contentwindow').on('click', function() {
    $('#contentwindow').hide();
});

我做了:

$('body').on('click', '#contentwindow', function() {
    $('#contentwindow').hide();
});

它使用“on”方法的方式允许包含元素(在本例中为“body”)处理下面元素上的事件,甚至以#contentwindow 的方式生成的元素。

希望这可以帮助。

于 2012-11-13T04:38:08.963 回答
0

从此行中删除 $ 您的代码

function($) { 

function() { 

/

 jQuery(document).ready(function() {
        $('.contentwindow_trigger').click(function(e) {
            // Click event code
        });

        $('#contentwindow').on('click', function() {
            $('#contentwindow').hide();
        });
    });

另一个不影响页面中的语法错误的更改是我看到您正在动态添加一个元素并将一个单击事件关联到它。

您需要为这种情况委派事件,并且该事件可能不起作用

$('body').on('click','#contentwindow' , function() {
        $('#contentwindow').hide();
    });
于 2012-11-12T20:16:31.293 回答