2017-09-15 141 views
-2

當用戶按下鏈接時,我想在類jstore-js-detailLink的元素之後插入HTML。JQuery .on('click',...)不起作用

我的嘗試似乎不工作:

<a href="" class="jstore-js-detailLink">hello</a> 
<div class="lsp-popup-item-name"></div> 

<script type="text/javascript"> 
jQuery(document).on('click', 'a[class^=".jstore-js-detailLink"]', function() { 
    jQuery('<div id="stars-block" class="stars">'+ 
      '<div id="reviewStars-input">'+ 
      '<input id="star-4" type="radio" name="reviewStars"/>'+ 
      '<label title="gorgeous" for="star-4"></label>'+ 
      '<input id="star-3" type="radio" name="reviewStars"/>'+ 
      '<label title="good" for="star-3"></label>'+ 
      '<input id="star-2" type="radio" name="reviewStars"/>'+ 
      '<label title="regular" for="star-2"></label>'+ 
      '<input id="star-1" type="radio" name="reviewStars"/>'+ 
      '<label title="poor" for="star-1"></label>'+ 
      '<input id="star-0" type="radio" name="reviewStars"/>'+ 
      '<label title="bad" for="star-0"></label>'+ 
      '<br>'+ 
      '</div>'+ 
      '</div>').insertAfter(".lsp-popup-item-name"); 
}); 
</script> 

回答

-1

class屬性選擇刪除.

jQuery(document).on('click', 'a[class^="jstore-js-detailLink"]', function(){ 

} 

上面的代碼被稱爲Attribute Starts With Selector。它爲DOM中的所有anchror元素添加了一個click處理程序,該元素有一個以jstore-js-detailLink開頭的類。

僅當您使用Class Selector時才添加.。在你的情況,下面的代碼也將工作:

jQuery(document).on('click', 'a.jstore-js-detailLink', function() { 
    .......... 
} 

你可以把它簡化爲:

$("a.jstore-js-detailLink").click(function(e){ 
    e.preventDefault(); 
    ........... 
}); 

e.preventDefault()將作爲一個鏈接,跳轉到停錨頁面頂部或在URL末尾添加#

+0

感謝名單 我已經使用這個: jQuery的(文件)。在( 「點擊」, 「.jstore-JS-detailLink」,函數(){}); –

-1

將選擇器更改爲class^="jstore-js-detailLink"並將event.preventDefault();添加到事件處理程序中。

jQuery(document).on('click', 'a[class^="jstore-js-detailLink"]', function(event) { 
    event.preventDefault(); 
    jQuery('<div id="stars-block" class="stars">'+ 
    '<div id="reviewStars-input">'+ 
    '<input id="star-4" type="radio" name="reviewStars"/>'+ 
    '<label title="gorgeous" for="star-4"></label>'+ 
    '<input id="star-3" type="radio" name="reviewStars"/>'+ 
    '<label title="good" for="star-3"></label>'+ 
    '<input id="star-2" type="radio" name="reviewStars"/>'+ 
    '<label title="regular" for="star-2"></label>'+ 
    '<input id="star-1" type="radio" name="reviewStars"/>'+ 
    '<label title="poor" for="star-1"></label>'+ 
    '<input id="star-0" type="radio" name="reviewStars"/>'+ 
    '<label title="bad" for="star-0"></label>'+ 
    '<br>'+ 
    '</div>'+ 
    '</div>').insertAfter(".lsp-popup-item-name") 
    }); 
</script>