盡管將代碼添加到“單擊”命令中,但我有一段代碼在頁面加載時執行了兩次。
我已經放置了代碼 'alert("Testing");' 在與“ click(function(evt) ”有關的代碼部分中- 如果有人可以建議我是否誤解了此方法的功能,我將不勝感激,因為我假設后續括號中的代碼只會在單擊按鈕時執行。
任何見解將不勝感激。
public static function get_javascript() {
ob_start();
?>
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery('#fpd-share-button').click(function(evt) {
alert("Testing");
evt.preventDefault();
jQuery(".fpd-share-widget, .fpd-share-url").addClass('fpd-hidden');
jQuery('.fpd-share-process').removeClass('fpd-hidden');
var scale = $selector.width() > 800 ? Number(800 / $selector.width()).toFixed(2) : 1;
fancyProductDesigner.getViewsDataURL(function(dataURLs) {
var dataURL = dataURLs[0],
data = {
action: 'fpd_createshareurl',
image: dataURL,
product: JSON.stringify(fancyProductDesigner.getProduct()),
};
jQuery.post("<?php echo admin_url('admin-ajax.php'); ?>", data, function(response) {
if(response.share_id !== undefined) {
var pattern = new RegExp('(share_id=).*?(&|$)'),
shareUrl = window.location.href;
if(shareUrl.search(pattern) >= 0) {
//replace share id
shareUrl = shareUrl.replace(pattern,'$1' response.share_id '$2');
}
else{
shareUrl = shareUrl (shareUrl.indexOf('?')>0 ? '&' : '?') 'share_id=' response.share_id;
}
//append selected attributes of variable product
var variationsSer = $productWrapper.find('.variations_form .variations select')
.filter(function(index, element) {
return $(element).val() != "";
}).serialize();
if(variationsSer && variationsSer.length > 0) {
shareUrl = ('&' variationsSer);
}
<?php
$shares = fpd_get_option('fpd_sharing_social_networks');
$shares = str_replace(',"googleplus"', '', $shares);
?>
jQuery(".fpd-share-widget").empty().jsSocials({
url: shareUrl,
shares: <?php echo is_array($shares) ? json_encode($shares) : '['.$shares.']'; ?>,
showLabel: false,
text: "<?php echo FPD_Settings_Labels::get_translation( 'misc', 'share:_default_text' ); ?>"
}).removeClass('fpd-hidden');
}
jQuery('.fpd-share-process').addClass('fpd-hidden');
jQuery('.fpd-share-url').attr('href', shareUrl).text(shareUrl).removeClass('fpd-hidden');
}, 'json');
}, 'transparent', {multiplier: scale, format: 'png'});
});
<?php
?>
});
</script>
<?php
$output = ob_get_contents();
ob_end_clean();
return $output;
}
}
}
uj5u.com熱心網友回復:
顯然我無法對您的代碼進行全面測驗,因為缺少太多部分而無法重現問題和整個環境。但是我已經創建了我認為您想要實作的基本結構的骨架。它似乎有效。
您可以在此處在線試用代碼:https : //www.w3schools.com/php/phptryit.asp?filename=tryphp_compiler 這是我發現的唯一一個允許您混合使用 html、js 和 php 的站點。
<?php
function get_javascript() {
ob_start();
?>
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery('#fpd-share-button').click(function(evt) {
alert("Testing");
evt.preventDefault();
});
});
</script>
<?php
$output = ob_get_contents();
ob_end_clean();
return $output;
}
?>
<!DOCTYPE html>
<head>
<script
src="https://code.jquery.com/jquery-3.6.0.min.js"
integrity="sha256-/xUj 3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="
crossorigin="anonymous"></script>
<?php
echo get_javascript();
?>
</head>
<body>
<button id="fpd-share-button">SHARE</button>
</body>
</html>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/361347.html
