2012-12-03 30 views
1

我有一個生成結果表,每個表都帶有一個編輯按鈕。在引導前編輯表單輸入值data-toggle ='modal'

<table> 
    <tr> 
     <td>Some Result 1</td><td><a href='#edit_tmp_form' data-toggle='modal' role='button' class='response-edit btn btn-warning'>Edit</a></td> 
    </tr> 
    <tr> 
     <td>Some Result 2</td><td><a href='#edit_tmp_form' data-toggle='modal' role='button' class='response-edit btn btn-warning'>Edit</a></td> 
    </tr> 
</table> 

而且我有一個臨時表格。

<div id="edit_tmp_form" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="form_label" aria-hidden="true"> 
    <div class="modal-header"> 
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> 
    <h4 id="form_label">Edit</h4> 
    <form class="form-inline" method="post" action="/somewhere"> 
     <input type="text" id="add_name" class="input" placeholder="something" name="name"> 
     <button id='add_c' disabled="disabled" type="submit" class="btn">增加</button> 
    </form> 
    </div> 
</div> 

到目前爲止,一切工作正常。

但是,我試圖編輯基於我想編輯的對象的輸入字段。

例如: 如果我點擊位於「Some Result 1」旁邊的編輯按鈕,我預計輸入字段將被預填充「Some Result 1」。

我嘗試使用jQuery,然後導致問題。

如果我這樣做:

$('.response-edit').click(function(){ 
    console.log('abc'); 
}); 

預期的代碼不運行,單擊該按鈕時。我假定引導數據切換在onclick事件偵聽器之前運行,因此不能讀取我的代碼。

有沒有辦法解決這個問題?或者我的假設是錯誤的?如果我的假設是錯誤的,請帶領我走上正確的道路。

謝謝。

回答

1

根據引導代碼(https://github.com/twitter/bootstrap/blob/master/js/bootstrap-modal.js),引導程序使用click事件並阻止默認的瀏覽器行爲。因此,在這裏,bootstrap只是在瀏覽器點擊錨時阻止導航。

但引導不會阻止點擊事件冒泡,所以你應該能夠抓住它並做你想做的。我剛剛嘗試了一個帶有日誌消息的示例,點擊一個帶有data-toggle=modal和簡單模式的錨點。它的工作原理。

也許你試圖綁定點擊事件時,你的元素只是不在這裏?

試試這個:

$('body').on('click', '.response-edit', function(){ 
    console.log('abc'); 
}); 
+0

感謝你們提供了一個解決方案。有用。但是,我不明白你的解釋。你可以解釋一下嗎? –