我有一个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');
}
功能DoSomthing:
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>';
警报未显示..
答案 0 :(得分:1)
这是因为内联事件注册要求您在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/
答案 1 :(得分:0)
只要导航到新页面,就不会触发该事件。您可以做的是将锚元素作为参数传递,然后在函数完成后导航到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;
}
答案 2 :(得分:0)
问题解决了
我发给他一个空格变量,因此该功能对我不起作用..
没有问题,所以你不知道,
非常感谢