hook into ajax success later
我正在写一个插件,有一个ajax调用,它向用户显示数据。
如果用户想在ajax上成功添加一些js? 他可以从他的js脚本中做到这一点,就像瞄准这个ajax成功事件一样。
例如:
1 2 3 4 5 6 7 8 9 | $(document).on('click','button',function(){ $.ajax({ url: 'url.php', success: function(response){ /** HOOK HERE **/ $('.display').html(response); } }) }) |
现在用户想要将此
你只需要记住函数就像数字,字符串等对象。所以你可以为他提供一个变量来附加函数并调用它(如果可用):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | MyPlugin = { onAjaxSuccess: null }; $(document).on('click','button',function(){ $.ajax({ url: 'url.php', success: function(response){ /** HOOK HERE **/ if (typeof MyPlugin.onAjaxSuccess == 'function') { MyPlugin.onAjaxSuccess(response); } $('.display').html(response); } }) }) |
所以现在你的用户可以这样做:
1 2 3 | MyPlugin.onAjaxSuccess = function (response) { console.log(response) }; |
等等,我以前在哪里见过这个?
这是与旧式DOM
1 2 3 | document.getElementById('myButton').onclick = function () { alert('HA'); }; |
看起来太老了。
如果您希望您的API看起来更现代,并且所有想象都可以模仿jQuery的风格:
1 2 3 4 5 6 7 8 | MyPlugin = { onAjaxSuccess: null, on: function (e_type,callback) { if (e_type == 'ajaxSuccess') { this.onAjaxSuccess = callback; } } }; |
现在您的用户可以这样做:
1 2 3 | MyPlugin.on('ajaxSuccess',function(result){ console.log(result); }); |