2014-04-25 97 views
0

我的網頁HTML有以下代碼jquery.rings.js的動態更改標籤的文本上點擊jQuery的

<script src="js/jquery.flexslider.js"></script> 
<script src="js/jquery.rings.js"></script> 

內容是:

$('input[type="image"]').click(function() 
{ 
    $ring = $(this).data('my-info'); 
    $('label#ringName').text($ring['ringSetName']); 
}); 


/***************************************************/ 

我的HTML代碼的獲取戒指陣列

$db = new db(); 
$rings = $db->query("SELECT * FROM rings"); 

在運行時,我將圖像添加到滑塊中s關注

<div class="albums-div"> 
    <ul class="slides"> 

     <?php 



foreach($rings as $ring) 
      { 
      echo '<li> <input type="image" src="' . $ring['ringThumbNailImagePath'] . '" name="checked" value="" data-my-info="' . $ring . '" width="150" height="150" /></li>'; 
      } 



     ?> 
    </ul> 
</div> 

問題是,單擊圖像時沒有任何反應,JS腳本似乎沒有被調用。

的JS函數應該設置一個標籤,在代碼中定義的文本

可能是什麼問題呢?

+1

_My HTML代碼獲取rings_陣列 - 哦,看,一個精靈! – WoIIe

回答

1

你需要event delegation動態添加元素:

$(document).on('click','input[type="image"]',function() 
{ 
    $ring = $(this).data('my-info'); 
    $('label#ringName').text($ring['ringSetName']); 
}); 
+0

謝謝,這是工作,但$環= $(這).data('my-info');這是行不通的,你能告訴我爲什麼我沒有得到我設置的數據嗎? –

+0

@MuhammadUmar:在此處正常工作 –

+0

$ ring不是文本。它從桌子上劃了一排。 –

0

嘗試使用event delegation動態添加元素:

事件代表團允許我們附加一個單一的事件偵聽器,以一個 父元素,該元素將爲匹配 選擇器的所有後代觸發,無論這些後代是否存在現在或將來在 中添加。

$('body').on('click','input[type="image"]',function() 
{ 
    $ring = $(this).data('my-info'); 
    $('label#ringName').text($ring['ringSetName']); 
});