Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在KnockoutJS中为jQuery插件创建自定义绑定

在KnockoutJS中为jQuery插件创建自定义绑定
EN

Stack Overflow用户
提问于 2012-12-08 17:04:35
回答 3查看 2.4K关注 0票数 1

我正在尝试使用raty jQuery插件在KnockoutJS中创建自定义绑定,以对电影进行星级评定。raty插件的正常实现如下所示...

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$('.raty').raty();
<div class="raty" data-rating="3"></div>

这样你就会得到类似这样的东西。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="raty" data-rating="3" style="cursor: pointer; width: 100px;">
    <img src="/raty/img/star-on.png" alt="1" title="bad">
    <img src="/raty/img/star-on.png" alt="2" title="poor">
    <img src="/raty/img/star-on.png" alt="3" title="regular">
    <img src="/raty/img/star-off.png" alt="4" title="good">
    <img src="/raty/img/star-off.png" alt="5" title="gorgeous">
    <input type="hidden" name="score" value="3">
</div>

我有一个电影的observableArray,集合中的每个电影都有UserMovies.Rating。当用户更新星级,然后更新电影observableArray中的UserMovies.Rating值时,我正在努力想出一种让bindingHandler处理的方法。

这是我在实现和bindingHandler方面的尝试。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="raty" data-bind="raty: UserMovies[0].Rating, ratyOptions: { cancel: true, half: true, size: 24 }"></div>

ko.bindingHandlers.raty = {
    init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
        var options = allBindingsAccessor().ratyOptions || {};
        var value = ko.utils.unwrapObservable(valueAccessor());
        // the line below throws Syntax error: Invalid label
        ko.bindingHandlers.attr.update(element, { 'data-rating': value }); 
        $(element).raty(options);

        // how to fire upate function when user changes star ratings?
    },
    update: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
        valueAccessor($(element).raty('score'));
    }
};
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-08 17:21:07

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ko.bindingHandlers.raty = {
    init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
        var options = allBindingsAccessor().ratyOptions || {};
        var value = ko.utils.unwrapObservable(valueAccessor());
        // the line below throws Syntax error: Invalid label
        $(element).data("rating",value);
        $(element).raty(options);

        $(element).delegate('click', 'img', function() {
            valueAccessor($(element).raty('score'));
        });
    }
};
票数 0
EN

Stack Overflow用户

发布于 2013-02-08 04:40:37

这段代码非常适合我:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ko.bindingHandlers.raty = {
   init: function (element, valueAccessor, allBindingsAccessor) {
      var options = allBindingsAccessor().ratyOptions || {};
      var value = ko.utils.unwrapObservable(valueAccessor());

      $(element).raty(options);
      $(element).raty("score", value);

      ko.utils.registerEventHandler(element, "click", function () {
          var observable = valueAccessor();
          observable($(element).raty("score"));
      });
    }
};
票数 1
EN

Stack Overflow用户

发布于 2012-12-08 17:19:27

不确定您打算如何处理这一行,但您可以替换这一行吗:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ko.bindingHandlers.attr.update(element, { 'data-rating': value }); 

只需:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$(element).data("rating",value);

对于更新,raty是否公开评级更改事件?如果是这样,您可以将其绑定到您的init中。否则,您可以尝试绑定click事件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13779700

复制
相关文章
【Android Gradle 插件】Gradle 自定义 Plugin 插件 ⑤ ( 自定义插件中获定义方法 | 在插件中创建 Gradle 任务 | 代码示例 )
在 自定义 Gradle 插件 的 Extension 扩展 中 , 可以定义方法 , 定义的方法可以带参数 , 也可以不带参数 ;
韩曙亮
2023/03/30
1.8K0
【Android Gradle 插件】Gradle 自定义 Plugin 插件 ⑤ ( 自定义插件中获定义方法 | 在插件中创建 Gradle 任务 | 代码示例 )
【Android Gradle 插件】Gradle 自定义 Plugin 插件 ④ ( 为自定义 Gradle 插件的扩展配置扩展 | 在自定义插件中获取扩展属性 )
在上一篇博客 【Android Gradle 插件】Gradle 自定义 Plugin 插件 ③ ( 自定义插件作用 | Android Gradle 插件的扩展 | 自定义 Extension 扩展 ) 中 , 实现了 自定义插件 的 扩展 Extension , 在 Module 模块下的 build.gradle 构建脚本中 , android 配置块 就是一个 AppExtension 扩展 , 但是在 android 扩展下又定义了 defaultConfig 扩展 , 这是一个 ProductFlavor 配置 ;
韩曙亮
2023/03/30
2K0
【Android Gradle 插件】Gradle 自定义 Plugin 插件 ④ ( 为自定义 Gradle 插件的扩展配置扩展 | 在自定义插件中获取扩展属性 )
程序员Web面试之前端框架等知识
基于前面2篇博客: 程序员Web面试之jQuery 程序员Web面试之JSON 您已经可以顺利进入Web开发的大门。 但是要动手干,还需要了解一些已有的前端框架、UI套件,即要站在巨人肩膀上而不是从轮
葡萄城控件
2018/01/10
2.2K0
程序员Web面试之前端框架等知识
在 PHP 中自定义 function_alias 函数为函数创建别名
我们知道 PHP 有一个为类创建一个别名的函数:class_alias,比如我们有个类名字是 WPJAM_Items,我们希望使用 WPJAM_Item 的时候效果一致,可以使用下面的代码为类 WPJAM_Items 创建一个别名 WPJAM_Item 。
Denis
2023/04/13
1.9K0
在 Vue 中创建自定义输入
基于组件的库或框架(如 Vue )可以创建 可重用组件 ,它能在各自应用程序中相互传递数据,这些框架能确保这些数据是一致的,并且(希望)简化了它们的使用方式。
疯狂的技术宅
2019/03/28
6.4K0
【Android Gradle 插件】自定义 Gradle 插件模块 ① ( 在 Module 模块中自定义 Gradle 插件 | 创建自定义插件类型模块 | 手动导入相关依赖 )
在上一篇博客 【Android Gradle 插件】Gradle 自定义 Plugin 插件 ⑦ ( 自定义 Gradle 插件导入方式 | buildSrc 插件导入 | 构建脚本中自定义插件 | 独立文件 ) 中 , 总结了在 Android Studio 工程中 自定义 Gradle 插件 , 并在 build.gradle 构建脚本 中导入插件的代码 ;
韩曙亮
2023/03/30
2.2K0
【Android Gradle 插件】自定义 Gradle 插件模块 ① ( 在 Module 模块中自定义 Gradle 插件 | 创建自定义插件类型模块 | 手动导入相关依赖 )
data自定义属性在jQuery中的用法
(1)如果在HTML文档中设置的data-自定义属性的单个字符串的名称的属性中若有大写值,在js文件中获取时只能用小写的形式获取。如:
kirin
2021/01/14
2.9K0
当使用 jquery 插件操作 input 时同步 vue 中绑定的变量办法
为什么要同步到 vue 上绑定的变量呢,因为如果我们不更新绑定的变量的值,vue 下次刷新组件的时候,就会将旧的值更新到 input 上。
前Thoughtworks-杨焱
2022/02/19
1.7K0
jQuery 动态绑定
这是在项目过程中所遇到的一个问题,给 JS 动态生成的元素绑定事件失效,代码如下所示:
Nian糕
2018/08/21
2K0
jQuery 动态绑定
jquery自定义插件——window的实现
本例子实现弹窗的效果: 1、jquery.show.js /* * 开发者:lzugis * 开发时间:2014年6月10日 * 实现功能:点击在鼠标位置显示div * 版本序号:1.0 */ (function($){ $.fn.showDIV = function(options){ var defaults = {}; var options = $.extend(defaults, options); var showdiv=$(this); var clos
牛老师讲GIS
2018/10/23
8430
jquery自定义插件——window的实现
jquery自定义插件实现分页效果
下面说说实现思路。实现分页效果,数据的加载可以分为两种情况:一次性获取数据和动态获取数据。一次性获取数据就是将所要查询的数据一次性查询出来,在前台去做分页处理;动态获取数据是根据当前页面和每页显示的条目数去动态获取数据。对于第一种,可在数据量比较小的情况下使用,可以减去每次去请求数据库和写分页sql语句的麻烦;对于第二种,适用于数据量比较大的时候,当数据量特别大的时候,一次性查询数据不论是前端还是后端,无疑都会减缓程序的执行效率与时间。
牛老师讲GIS
2018/10/23
1.7K0
jquery自定义插件实现分页效果
jQuery预绑定
文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书
Tyan
2022/05/09
5670
jquery事件绑定
.bind()   为一个元素绑定一个元素处理程序。   .bind(eventType[,eventData],handler(eventObject))     eventType       一个包含一个或多个DOM事件类型的字符串,或自定义事件的名称。     eventData       一个对象,它包含的数据键值对映射将被传递给事件处理程序。     handler(eventObject)       每当事件
用户1197315
2018/01/19
3.6K0
KnockoutJS语法
  假设我们的页面输入区域有一个div用来展示一件物品的名字,同时有一个输入框用来编辑这件物品的名字
javascript.shop
2019/09/04
2.3K0
KnockoutJS语法
在vue项目中使用jquery和jquery插件
Vue之所以受欢迎,主要就在于它的轻量和灵活,我们可以用vue做SPA,也可以用它做多页应用,一个页面对应一个VUE实例。而且因为他的轻量,低侵入性,所以我们可以很方便地和其他框架或者库搭配使用,那么我们怎么在基于vue的SPA应用中搭配jquery使用呢?
fastmock
2022/07/13
1.6K0
jquery 绑定click事件
有时候需要获得匹配元素相对于其同胞元素的索引位置,此时可以用index()方法获取
Devops海洋的渔夫
2019/05/30
4.5K0
用于创建树形部件的 jQuery 插件:jsTree
jsTree 是一个基于 jQuery 和 Sarissa 的免费网页树形部件,它设置灵活,并且支持几乎主流的浏览器,如:Internet Explorer 6 +, Mozilla Firefox, Safari 3, Opera 9+, Google Chrome。
Denis
2023/04/14
1K0
SpringBoot中自定义参数绑定
本文是vhr系列的第十篇,vhr项目地址https://github.com/lenve/vhr 正常情况下,前端传递来的参数都能直接被SpringMVC接收,但是也会遇到一些特殊情况,比如Date对象,当我的前端传来的一个日期时,就需要服务端自定义参数绑定,将前端的日期进行转换。自定义参数绑定也很简单,分两个步骤: 1.自定义参数转换器 自定义参数转换器实现Converter接口,如下: public class DateConverter implements Converter<String,Da
江南一点雨
2018/04/02
1.3K0
jQuery on绑定事件问题
以前没注意,最近在使用on绑定事件时发现,通过for循环绑定动态绑定时,多个元素最终绑定的都是最后一次事件,不知道用while是不是也是一样,谁有清楚这种现象也可以说一下原因!!!
sucl
2019/08/07
2.5K0
【JQuery】JQuery入门——JQuery 插件-validation
validate 是 jQuery 插件,及必须在 jQuery 的基础上进行运行。我们将导入 jQuery 库、 validate
陶然同学
2023/02/27
12.3K0
【JQuery】JQuery入门——JQuery 插件-validation

相似问题

为简单jQuery插件创建knockoutJS自定义绑定

11

KnockoutJs + Jquery插件验证

21

在Knockoutjs自定义绑定中创建幻灯片切换

23

用Knockoutjs使用jQuery插件

11

自定义绑定中的ValueAccessor为空(knockoutjs & googlemap)

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文