2 回答

TA貢獻1828條經(jīng)驗 獲得超13個贊
我認為您已經(jīng)在單擊時替換了所有 .phone,因為您使用了全局選擇器。嘗試將事件綁定到每個鏈接,或者您可以在 .phone-link 選擇器上使用實時偵聽器。
jQuery(function($) {
var formatPhone = function(tel) {
// format should be here
return tel;
}
// replace in a single loop
// without wrapping
$('.phone').each(function() {
var $this = $(this);
var tel = $this.text();
var $link = $('<a class="phone-link" href="tel:'+tel+'">Click to Call</a>')
.on('click', function(ev) {
ev.preventDefault();
$(this).text(formatPhone(tel));
});
$this.empty().append($link);
});
});
帶有現(xiàn)場聽眾的示例
$(document).on('click', '.phone-link', function(ev) {
ev.preventDefault();
var $this = $(this);
$this.text(formatPhone( $this.attr('href') ));
});

TA貢獻1866條經(jīng)驗 獲得超5個贊
我對“點擊通話”和“實際電話號碼”之間的預(yù)期切換感到有些困惑。請讓我知道它是否符合目的或需要更多更改
jQuery(document).ready(function($) {
$(".phone").on("click",function(event){
if(!$(event.target).hasClass("phone-link") ){
var phoneLink = $(this).text();
$(this).wrapInner('<a class="phone-link" href=""></a>');
$(this).find("a.phone-link").attr('href','tel:' + phoneLink).text('Click to Call');
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="entry-details">
<p class="phone">+18885551212,,,111</p>
<p class="address">111 Any Street, Anytown, NY 10010, USA</p>
<p class="time">11:00 to 08:00</p>
</div>
<div class="entry-details">
<p class="phone">+18885551212,,,222</p>
<p class="address">222 Any Street, Anytown, NY 10010, USA</p>
<p class="time">11:00 to 08:00</p>
</div>
<div class="entry-details">
<p class="phone">+18885551212,,,333</p>
<p class="address">333 Any Street, Anytown, NY 10010, USA</p>
<p class="time">11:00 to 08:00</p>
</div>
<div class="entry-details">
<p class="phone">+16665551200</p>
<p class="address">444 Any Street, Anytown, NY 10010, USA</p>
<p class="time">11:00 to 08:00</p>
</div>
添加回答
舉報