Javascript 单击listview中的项目不会运行onclick

Javascript 单击listview中的项目不会运行onclick,javascript,jquery,html,listview,href,Javascript,Jquery,Html,Listview,Href,我有一个Jquery的列表视图 单击每个项目将转到另一个页面: 名单如下: 我在代码中填写如下: function FillList() { var UL= $('#MyList'); for (var i = 0; i < 3; i++) { var newLI = document.createElement("LI"); UL.append(newLI); newLI.innerHTML = '<a href="

我有一个
Jquery
的列表视图

单击每个项目将转到另一个页面:

名单如下:

我在代码中填写如下:

function FillList() {
    var UL= $('#MyList');
    for (var i = 0; i < 3; i++) {
        var newLI = document.createElement("LI");
        UL.append(newLI);
        newLI.innerHTML = '<a href="NewPage.html" data-transition="slide" 
                           onclick="DoSomething('+i+');" >
                               <p> item number:'+i+'</p>
                          </a>';


    }
    $('#MyList').slideDown('slow');
}
单击列表中的项目时,函数DoSomething未运行

它可以移动到另一个页面,而无需首先输入DoSomething函数

为什么?

更新

即使代码看起来像这样:

        newLI.innerHTML = '<a href="NewPage.html" data-transition="slide" 
                           onclick="alert('aaa');" >
                               <p> item number:'+i+'</p>
                          </a>';
newLI.innerHTML='';

警报不会出现。

只要导航到新页面,事件就不会被触发。您可以做的是将锚元素作为参数传递,然后在函数完成后导航到URL,如下所示

newLI.innerHTML = '<a href="NewPage.html" data-transition="slide" 
                           onclick="DoSomething(this, '+ i +');" >
                               <p> item number:'+ i +'</p>
                          </a>';

这是因为内联事件注册要求您在XHTML结构层中编写JavaScript行为代码。有关详细信息,请参阅:

请看这里的演示

HTML:

<a onclick="test1();">test 1</a>
<p>
<a onclick="test2();">test 2</a>

<script>
    function test1(){
        alert('test 1');
    }
</script>
只有test1被触发

更新


您的代码似乎有语法错误。在这里尝试我的演示

问题已经解决

我给他发送了一个空间变量,因此该函数对我不起作用

这不是问题,所以你不可能知道


无论如何谢谢

原来的帖子是打字错误吗?没问题,我正在更新我的答案,一秒钟。搜索变量在哪里?它认为它一定是UL.append(newLI);浏览器控制台中是否有任何错误?试着按f12并查看控制台选项卡我相信错误会阻止js执行:)我的错误,我复制的不正确,但对我来说就像你写的一样。它仍然会链接,而不会转到functionYes,但我在同一页面的另一个列表中(它们之间没有区别),并且正在工作
function DoSomething(anchor, numberLi) {
    alert(numberLi);

    window.location.href = anchor.href; 

    return false;
}
<a onclick="test1();">test 1</a>
<p>
<a onclick="test2();">test 2</a>

<script>
    function test1(){
        alert('test 1');
    }
</script>
function test2(){
    alert('test 2');
}