Tag: oop

在完成之前等待外部方法完成?

我正在用PHP和JavaScript制作一个小日历应用程序。 要在第一页上填充事件div ,我运行此函数: function populateEvents() { $.ajax({ type: “GET”, url: “populateEvents.php”, success: function(data, textStatus, XMLHttpRequest) { $(‘#events’).html(data); }, error: function(jqXHR, textStatus, errorThrown) { alert(“Status: ” + textStatus + “. Error thrown: ” + errorThrown); } }); } 非常简单, populateEvents.php完成大部分工作。 现在,当我想添加一个事件时,我调用以下函数: function createEvent(u_id) { var title = $(“#titleInput”).val(); var type = $(“#typeSelect”).val(); var location = $(“#locationInput”).val(); […]

使用jQuery对象的OOP:更改jQuery数组的原型与创建自己的对象树

介绍 对于我的新工作,我必须编写一个经典的下拉菜单示例,该示例高度可访问(通过鼠标和键盘)并且与屏幕阅读器兼容(通过正确管理WAI-ARIA属性和状态)。 我的团队由“正常”的人和身体残疾的人组成,他们说他们在此之前无法找到完全可访问的下拉菜单,所以我们正在努力创建自己的给予客户。 好吧,我来自Ruby on Rails背景,直到现在才编写复杂的JavaScript代码,所以我试图将我的OOP知识从Ruby应用到JS世界。 因为我非常了解CoffeeScript,并且它在后台提供了相当多的魔力,这使得使用类和inheritance变得容易(虽然JS是一种对象驱动的语言而且没有类这样的东西),我坚持使用CoffeeScript而不是简单的JS。 我正在尝试设置一个类似于下拉菜单的正确对象树: 有一个Item类。 有一个inheritance自Item的ParentItem类。 有一个RootParentItem类,它inheritance自ParentItem 。 这样,所有根项都是RootParentItem类型,所有其他父项(拥有自己的子菜单的项)都是ParentItem类型,所有“真实”菜单项(指向网站中某个位置的链接)都是类型Item 。 通过设置这个适当的对象树,我认为根据项目的类型处理不同的键操作,鼠标操作等是非常简单和合理的。 这有助于防止长程序意大利面条代码,我在许多其他提供类似function的JS库上看到过。 这是我目前工作的一个例子: http : //codepen.io/jmuheim/pen/fAjcx 现在经过深思熟虑之后我问了一个问题:创建自己的对象树是否合理,同时在后台拥有大量的jQuery数组并将它们保存在我的对象变量中? 它有点奇怪,有一个漂亮的树结构,但总是使用相同结构的“阴影”,比如说:jQuery数组。 如上所述,我来自一个高度面向对象的Ruby世界。 我对JavaScript世界中的清晰编码实践/模式没有任何经验,因此: 你认为我的尝试是否合理? 是否有更清洁(公开更多接受)的方式? 也许直接在jQuery数组的原型上工作会更合理吗? 怎么可能这样做呢? 关于我的JS编码风格的任何其他评论?

Javascript对象属性不在范围内

我似乎对对象的属性范围有问题。 我想将每个Message对象的title和message属性输出到select元素,但它不工作 ! 我做错了什么 $(function(){ function Message(title, message) { this.title=title; this.message=message; this.getTitle = function(){ return this.title; }; this.getMessage = function(){ return this.message; }; } var messages = new Array( new Message(“First Title”, “This is the first message”), new Message(“Second Title”, “This is another message”) ); function updateSelect () { $(“#cannedMessages_button”).empty(); for (c in messages) { […]

链.ready和.resize成function?

在这个对象中,我有一个属性Response.action ,它是一个在jQuery的.ready和.resize同时触发代码的简写。 下面的代码块中的注释演示了它的用法。 Response.action适用于.ready但不适用于.resize 。 任何人都可以看到为什么和/或建议如何使它适用于两者? window.Response = (function($, window, undefined) { var Response = {}, // object $window = $(window), $document = $(document); // cache selectors /* Response.action() This triggers code on .ready *and* .resize usage: Response.action( myactions ); function myactions() { // do stuff } */ action = function( code ) { var […]

使函数等到使用jQuery完成AJAX调用

我试图用JavaScript开发一个类,我可以使用它来访问由AJAX请求轻松收集的数据量。 唯一的问题是我需要在AJAX调用完成后才能访问类的成员。 理想情况下,我希望最终得到的是我可以在脚本中调用它: courses.getCourse(‘xyz’).complete = function () { // do something with the code } 这只会在AJAX调用完成并且“类”中的数据结构准备好使用之后才会触发。 理想情况下,我不想为类中的每个函数创建.complete成员 这是我到目前为止所做的“课程”: var model_courses = (function() { var cls = function () { var _storage = {}; // Used for storing course related info _storage.courses = {}; // Used for accessing courses directly _storage.references = new Array(); // Stores […]

检查jQuery .hover操作是否已经绑定

有没有办法检查一个元素是否已经有一个由jQuery .hover函数触发的动作?

PHP,jQuery和Ajax面向对象

我是一个相当有经验的程序员,第一次了解PHP和Ajax,我在如何将面向对象的PHP合并到我的ajax webapp中时遇到了一些麻烦。 我有一个管理页面(admin.php),它将从XML文件加载和写入信息(info.xml),具体取决于用户对管理页面上表单的选择。 我决定使用一个对象(ContentManager.php)来管理XML文件到磁盘的加载和写入,即: class ContentManager{ var $xml_attribute_1 … function __construct(){ //load the xml file from disk and save its contents into variables $xml_attribute = simplexml_load_file(/path/to/xml) } function get_xml_contents(){ return xml_attribute; } function write_xml($contents_{ } function print_xml(){ } } 我在admin.php中创建了ContentManager对象,就像这样 …all my jquery … all my form elements 所以现在我想使用AJAX允许用户通过ContentManger应用程序使用接口(ajax_handler.php)从XML文件中检索信息 我理解如果我不使用对象,这将是如何工作的,即,根据.post请求中的变量,hander php文件会执行某个操作,但是在我的设置中,我无法看到我如何获得引用我在ajax_handler.php文件的admin.php中创建的ContentManager对象? 也许我对php对象范围的理解是有缺陷的。 无论如何,如果有人能够理解我正在尝试做什么,我将不胜感激!

进行OO javascript回调时的范围

伙计们 – 我正在努力学习如何编写OO Javascript,我来自as3 OO背景……我遇到的问题是将一个类’方法作为回调传递给另一个类… 在下面的示例中,我创建了一个AppController类的实例,在其中,我创建了一个ConnectionMonitor类的实例。 我传递一个AppController的方法,由ConnectionMonitor调用。 回调工作正常,但似乎回调函数内部的内容失去了它的范围(AppController)…… 有什么想法吗? //in the HTML $(document).ready( function(){ new AppContoller().init(); }); //in the js file //AppController Class var AppContoller = function(){ this.body = $(“body”); this.init = function(){ this.connection = new ConnectionMonitor(); this.connection.detectInitialConnection( this.initialConnectionDetected ); } //callback function I pass this.initialConnectionDetected = function(bool){ if(bool){ trace(“app connected? “+bool); // logs – […]

TypeError:不是构造函数

我正在尝试使用基于OOP的javascript / jQuery。 我想将所有JS函数放在一个类中,因此可以轻松覆盖/挂钩。 我试过一个简单的OOP代码,但它给出了类型错误:不是构造函数。 请查看我的代码并指导我的代码有什么问题,以及如何解决它。 var myTestClass = { testAttribute : ‘test’, // atttribute testMethod : function(){ alert( testAttribute); } }; var my = new myTestClass(); my.testMethod(); 谢谢

javascript中间寻找学习面向对象编程的书

我是一名中级javaScript程序员,我有兴趣扩展我在面向对象编程(尤其是面向对象的JavaScript)方面的知识。 我更喜欢一本关于浏览分散的网络资源的书,是否有人知道哪本书最适合抢先一步? 谢谢