尝试使用JavaScript将public function getClientPhone()
{
$phone = Client::getStaticClientPhone($this->client_id);
if ($this->client_id || $phone === null) {
return '';
}
return $phone;
}
属性写入不同的类
onclick
问题是添加一个属性只有当所有类都在一个页面上时才能工作,就像上面的代码一样。但是如果我想在另一个页面上有相同的代码,那么代码的非代码将适用于这两页。我将在控制台中出现此错误:
window.onload=function (){
document.getElementsByClassName("sg")[0].setAttribute("onClick", "ga('send', 'event', { eventCategory: 'Submit a form', eventAction: 'Click', eventLabel: 'Contact form submit'});");
document.getElementsByClassName("sm")[0].setAttribute("onClick", "ga('send', 'event', { eventCategory: 'Submit a form', eventAction: 'Click', eventLabel: 'Contact form submit'});");
}
'的setAttribute' Cannot read property
这是我的代码:
of undefined at window.onload
答案 0 :(得分:0)
在尝试调用方法之前测试元素是否存在。
var element = document.getElementsByClassName("foo")[0];
if (element) {
element.setAttribute(etc, etc);
}
答案 1 :(得分:0)
您可以使用以下内容:
function myEventHandler
{
ga('send', 'event',
{
eventCategory: 'Submit a form',
eventAction: 'Click',
eventLabel: 'Contact form submit'
});
}
['sg','sm','sf'].forEach(function(k)
{
Array.from(document.getElementsByClassName(k)).forEach(function(o)
{
o.addEventListener('click',myEventHandler);
}
});
无论是否有0,1个或多个元素匹配每个类,这都将有效。
答案 2 :(得分:0)
您可以使用addEventListener来捕获事件
window.addEventListener('click', function($event){
var eleClasses = $event.target.classList;
if(eleC.contains("sg") || eleC.contains("sm") || eleC.contains("sf")){
ga('send', 'event', { eventCategory: 'Submit a form', eventAction: 'Click', eventLabel: 'Contact form submit'})
}
});