2012-08-26 32 views
1

後不確定我有一個代碼塊,像這樣:功能變爲第一觸發

function doSomething() { 
    someVar.on("event_name", function() { 
     $('#elementId').click(function(e) { 
      doSomething(); 
     }); 
    }); 
} 

// and on document ready 
$(function() { 
    $('#anotherElemId').click(function() { 
     doSomething(); 
    }); 
}); 

,我現在遇到的問題是,當我叫doSomething()anotherElemId點擊事件(即在文件準備綁定)它按預期工作,但從elementId遞歸調用它不起作用。

任何想法?思維是我錯過的小事。

+1

'(「#elementId」)點擊(函數(E){'需要'$('#elementId')。click(function(e){' –

+0

也運行doSomething將顯示在螢火蟲中的返回值,因爲你沒有返回任何東西,它應該顯示undefined,請返回'didSomethig'; – sabithpocker

+0

你確定你沒有使用'doSomething'作爲其他名字? – MaxArt

回答

0

someVar是一個實際的jQuery引用一個DOM元素? (例如$('#someitem'))

第二個問題是你不能在你想稍後實例化的函數中放置一個.click事件。如果你想只允許#elementId有一個click事件之後以前的一些活動,嘗試測試,如果測試者變量是真:

var activated = false; 

$(function() { 
    $('#anotherElemId').click(function() { 
     activated = true; 
    }); 

    $('#secondElemId').on("event_name", function() { 
     if (activated) { 
      // code that happens only after #anotherElemId was clicked. 
     } 

    }); 
}); 
+0

someVar不是一個DOM元素。看到我的評論與鏈接到pastebin。點擊事件正在被觸發,因爲我的控制檯日誌語句正在執行。我已經改變它在同時有2個鏈接單獨連接/斷開ID和setupSocket()函數外部附加的事件。似乎一切都被觸發,但在第二次連接,斷開連接後,我的服務器拒絕連接。非常感謝您的幫助,試圖找出答案。 – Mecca

+0

並進行更新。我試圖重新創建與socket.connect()的連接,但我應該使用相同的對象,並調用socket.socket.disconnect()按照http://stackoverflow.com/questions/9598900/how-to-reconnect之後你稱爲斷開連接。所以真正的問題與我的問題無關,我的調試應該更徹底。 – Mecca