2012-03-14 100 views
0

嗯,我不是真的在jQuery的大師,但我可以做一些基本的東西。不過,我不明白這一點。我正在收聽.btn-deleteclick事件,設置.btn-dangerdata-route屬性(在模式對話框中)的值爲.btn-deletedata-route屬性。點擊jQuery設置屬性不會改變值

真的很簡單的東西,我知道我做錯了。 data-route對於.btn-danger不改變。任何幫助將不勝感激,謝謝。

<!-- modal confirm --> 
<div id="modal-delete"> 
    <a class="btn-danger" data-route="">Confirm</a> 
</div> 

<!-- delete buttons --> 
<a class="bt-delete" data-route="/user/delete/1">Delete</a> 
<a class="bt-delete" data-route="/user/delete/2">Delete</a> 

<script> 
    $(document).ready(function() { 

     // Listen to .btn-delete click 
     $('.btn-delete').click(function() { 

      // Get data-route for the delete button and set it in the modal 
      $('#modal-delete .btn-danger') 
       .attr('data-route', $(this).data('ruote')); 

      // Do ajax in .btn-danger click event 
      $('#modal-delete .btn-danger').click(function() { 
       // data-route does not change 
       console.log($(this).data('route')); 
      }); 
     }); 
    }); 
</script> 

回答

0

編輯:您的代碼有一堆語法錯誤+選擇錯誤(錯字的那種)的。

DEMO

的DEMO環節都有固定的代碼,請大家看看,並相應地解決您的代碼。

  1. $(document).ready(function(應該$(document).ready(function() {
  2. $('.btn-delete').click(function() {應該$('.bt-delete').click(function() {
  3. $(this).data('ruoute')應該$(this).data('route')
  4. $('.btn-delete').click(function() {應關閉設置數據之後。
  5. 如果attr使用,則console.log應該使用attr打印的內容爲console.log($(this).attr('data-route'));

注:這是更好地使用data而不是attr功能。請參閱DEMO關於如何使用data函數。

+0

謝謝,但我需要設置'數據「路由」爲'.btn-dan ger'在模式中,從'.btn-delete'的'data-route'中取值。確認按鈕中出現「.btn-danger」。 – gremo 2012-03-14 15:40:40

+0

錯字在這裏重寫代碼 - 謝謝,修正。 – gremo 2012-03-14 15:48:39

+0

它不起作用 - 嘗試讓控制檯記錄「/ user/delete/1」,然後「/ user/delete/2」或其他方式...... data()**必須被使用** – ManseUK 2012-03-14 15:53:59

-1
$('#modal-delete .btn-danger').attr('data-route', $(this).data('ruoute')); 

應該

$('#modal-delete .btn-danger').data('data-route', $(this).data('route')); 

你應該總是使用.data()方法(不a​​ttr)使用用於獲取和設置與節點相關聯的數據

也有另一對夫婦的錯誤在你的代碼:

$(document).ready(function(

應該是

$(document).ready(function() { 

$('.btn-delete').click(function() { 

應該

$('.bt-delete').click(function() { 

我已刪除了n相匹配的HTML

Works fine for me here

+0

它應該也與'attr',我錯了嗎? – gremo 2012-03-14 15:46:07

+0

看看jsfiddle它爲我工作 - 這裏是attr vs數據的解釋 - > http://stackoverflow.com/questions/7261619/jquery-data-vs-attr – ManseUK 2012-03-14 15:48:39

+0

Downvote 3歲的問題沒有任何解釋?! – ManseUK 2015-07-03 11:38:08