使用onclick单击li元素时如何激活URL? [jQuery的]

时间:2017-11-06 13:24:45

标签: javascript html5 onclick html-lists element

我的问题......
所以我有一个从JavaScript函数创建的侧栏,我想添加一个onclick元素,该元素在点击li元素时激活。这就是我所拥有的,但我不知道如何纠正它。

var theArray = [{'name': 'Home', 'url': 'EverythingPrg.html'}]

window.onload = function () {
$(function () {
    for (var obj in theArray) {
        $('#theUl').append($("<li/>", {'onclick:location.href': theArray[obj].url}).append($("<a/>", {'html': theArray[obj].name})));
    }
})

侧栏确实显示,但点击后没有任何事情发生......

2 个答案:

答案 0 :(得分:0)

可能是范围问题 - 您告诉它使用obj onclick但在click事件的范围内不存在。

尝试将li创建为jquery对象,并通过jquery事件绑定(.on)附加事件。

我建议的另一个变化是for (var obj in theArray) {是糟糕的形式。如果更改了数组原型,则此代码将失败。相反,只需增加一个计数器。

var theArray = [{'name': 'Home', 'url': 'EverythingPrg.html'}]

$(function () {
    $(document).ready(function() {
        for (var i = 0; i < theArray.length; i++) {
            var obj = theArray[i],
                li = $('<li>').html('<a>' + theArray[obj].name + '</a>');

            li.on('click', function() {
                window.location.href = theArray[obj].url;
            });

            $('#theUl').append(li);
        }
    });
});

答案 1 :(得分:0)

将此for循环替换为能够按需使用

for (var obj in theArray) {
    $('#theUl').append($("<li onclick=location.href='"+ theArray[obj].url + "' ></li>").append($("<a/>", {'html': theArray[obj].name})));
}