单击列表视图中的项不会运行onclick

Clicking on an item in the listview do not run the onclick

本文关键字:运行 onclick 列表 视图 单击      更新时间:2023-09-26

我有一个Jquery的ListView。

点击每一项会转到另一页:

这是列表:

我在代码中填写如下:

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:

function DoSomething(numberLi)
{
  alert(numberLi);
}

函数DoSomething不运行时点击列表中的一个项目,

不需要先输入DoSomething函数

就会移动到另一个页面

为什么?

:

即使代码看起来像这样:

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

这是因为内联事件注册要求您在XHTML结构层中编写JavaScript行为代码。详见:http://www.quirksmode.org/js/events_early.html.

看这里的演示http://jsfiddle.net/8t2Ye/3/

HTML:

<a onclick="test1();">test 1</a>
<p>
<a onclick="test2();">test 2</a>
<script>
    function test1(){
        alert('test 1');
    }
</script>

JS(外部):

function test2(){
    alert('test 2');
}

只触发test1。

似乎你的代码有语法错误。试试我的演示吧http://jsfiddle.net/en7VU/1/

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

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

和函数。

function DoSomething(anchor, numberLi) {
    alert(numberLi);
    window.location.href = anchor.href; 
    return false;
}

问题解决了

我给他发送了一个空间变量,因此该函数不适合我。

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

谢谢