关于})的一些JS / jquery代码的语法错误;

时间:2012-11-12 20:15:30

标签: javascript jquery html css

我正在尝试创建的内容窗口的某些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();
    });
});

错误就是在这里所说的,任何帮助都会受到赞赏。

谢谢!

3 个答案:

答案 0 :(得分:0)

从此行删除$代码

function($) { 

function() { 

/

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

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

另外一项不会影响页面中语法错误的更改是我看到您正在动态添加元素并将click事件与其关联。

您需要为这种情况委派事件,而事件可能无效

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

答案 1 :(得分: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();
    });
});

答案 2 :(得分:0)

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

http://jsfiddle.net/xV58c/

我在那里做的一个改变可能对你有帮助。而不是:

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

我做了:

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

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

希望这有帮助。