我想为CakePHP 2.x中构建的基于Web的应用程序构建跟踪系统.我们的想法是将所有跟踪链接写成如下:
<a
href="#"
class="track-click"
data-tracking='{
"trackers": [
{
"tracker": "----",
"eventId": "---",
"tracking_options": {
"eventTargetUrl": "---",
"props": [{
"key": "----",
"value": "---"
}]
}
}
]
}'
/>
Run Code Online (Sandbox Code Playgroud)
处理跟踪请求的javascript应该能够收集驻留在数据跟踪属性中的信息.这可以通过在"跟踪点击"类onClick事件上附加点击事件来完成.
以下是我如何使用上面的链接:
$('.track-click').click(function(e){
//Lets grab the data thats within the data-tracking attribute and do something with it
var data = $(this).attr('data-tracking');
alert(data.trackers);
e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
在目前这个时刻,如果我提醒上面我得到了不确定.如果我在我的代码上放置$(this).attr('data-tracking').val(),我会得到以下错误:
TypeError: $(...).attr(...).val is not a function
Run Code Online (Sandbox Code Playgroud)
如上所示,操作具有json数据的链接的最佳方法是什么?
我想知道为什么下面的语法不适用于PHP.任何有洞察力的人也许没有任何意义或什么.
($this->getState($state))->getEvent('eventOpen')->attach($observeCallback);
Run Code Online (Sandbox Code Playgroud)
基本上该getState($state)方法返回一个对象,该对象本身具有getEvent($eventName)和attach($observerCallbackToAttach).
但是,这会引发错误并且不起作用.
我是否打破了认为这是一种有效语法的规则?