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');
}