2013-01-21 106 views
0

我有一個列表視圖Jquery點擊在列表視圖中的項目不要運行onclick

點擊每個項目傳遞到另一個頁面:

這是列表:

我填寫到代碼如下:

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的

爲什麼呢?

UPDATE

即使代碼如下所示:

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

警報未出現..

+0

是原來的職位一個錯字? –

+0

是的,我改變了!對不起 –

+0

沒問題,我正在更新我的答案,一秒鐘。 –

回答

0

問題解決了

我給他發了空間可變,因此功能並沒有爲我工作..

這是沒有問題的,所以你可能不知道,

感謝反正

0

該事件不會,只要它觸發導航到新的頁面。你可以做的是傳遞anchor元素作爲參數,然後在函數完成之後導航到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; 
} 
+0

我的錯誤,我錯誤地複製了它,但對我來說就像你寫的。 –

+1

更新了我的答案。 –

+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/

+0

是的,但我在另一個列表(他們之間沒有差異)在同一頁上,並且是工作 –

+0

看到我的演示在這裏http://jsfiddle.net/en7VU/1 / – phnkha

相關問題