Javascript Knockout.js+;自助游

Javascript Knockout.js+;自助游,javascript,knockout.js,bootstrap-tour,Javascript,Knockout.js,Bootstrap Tour,我想和你一起使用。特别是,我想将一些数据绑定的点击处理程序附加到巡更步骤中的按钮上 我创建了一个简单的旅行,如下所示: var tour = new new Tour({ steps: [ { orphan: true, title: "Help Title", content: "<button data-bind='click: someBoundFunction'>Click me!

我想和你一起使用。特别是,我想将一些数据绑定的点击处理程序附加到巡更步骤中的按钮上

我创建了一个简单的旅行,如下所示:

var tour = new new Tour({
    steps: [
        {
            orphan: true,
            title: "Help Title",
            content: "<button data-bind='click: someBoundFunction'>Click me!</button>"
        }
    ]
});
tour.init();
tour.start(true);
var-tour=new-tour({
步骤:[
{
孤儿:是的,
标题:“帮助标题”,
内容:“点击我!”
}
]
});
tour.init();
tour.start(true);

可以用这种装订吗?或者,由于bootstraptour的标记代码创建机制,这种绑定不会工作吗?我这样尝试过,但单击按钮不会执行该功能,也不会显示任何错误消息。

Knockout不会自动更新新添加元素的绑定。不过有一个解决办法,请参见此(和)。以下是基于此解决方案的可能解决方案

因此,您有一个主视图模型,它将开始您的巡演:

function ViewModel(){
    var self = this;
    this.tour = new Tour({ 
        steps: [
            {
                orphan: true,
                title: "Help Title",
                content: '<button id="newButton" data-bind="click: showMessage">showMessage</button>',
                onShown: function(tour) {
                    // apply the bindings after content is added
                    ko.applyBindings(self, document.getElementById("newButton"));
                }
            }
        ]
    });
    this.startTour = function() {
        this.tour.init();        
        self.tour.start(true);        
    }
    this.showMessage = function() {
        alert('Hello!');
    }
}
函数ViewModel(){
var self=这个;
this.tour=新的巡更({
步骤:[
{
孤儿:是的,
标题:“帮助标题”,
内容:“showMessage”,
onShown:功能(巡演){
//添加内容后应用绑定
应用绑定(self,document.getElementById(“newButton”);
}
}
]
});
this.startTour=函数(){
this.tour.init();
self.tour.start(true);
}
this.showMessage=函数(){
警惕(“你好!”);
}
}

Knockout不会为新添加的元素自动更新绑定。不过有一个解决办法,请参见此(和)。以下是基于此解决方案的可能解决方案

因此,您有一个主视图模型,它将开始您的巡演:

function ViewModel(){
    var self = this;
    this.tour = new Tour({ 
        steps: [
            {
                orphan: true,
                title: "Help Title",
                content: '<button id="newButton" data-bind="click: showMessage">showMessage</button>',
                onShown: function(tour) {
                    // apply the bindings after content is added
                    ko.applyBindings(self, document.getElementById("newButton"));
                }
            }
        ]
    });
    this.startTour = function() {
        this.tour.init();        
        self.tour.start(true);        
    }
    this.showMessage = function() {
        alert('Hello!');
    }
}
函数ViewModel(){
var self=这个;
this.tour=新的巡更({
步骤:[
{
孤儿:是的,
标题:“帮助标题”,
内容:“showMessage”,
onShown:功能(巡演){
//添加内容后应用绑定
应用绑定(self,document.getElementById(“newButton”);
}
}
]
});
this.startTour=函数(){
this.tour.init();
self.tour.start(true);
}
this.showMessage=函数(){
警惕(“你好!”);
}
}

Knockout不会为新添加的元素自动更新绑定。不过有一个解决办法,请参见此(和)。以下是基于此解决方案的可能解决方案

因此,您有一个主视图模型,它将开始您的巡演:

function ViewModel(){
    var self = this;
    this.tour = new Tour({ 
        steps: [
            {
                orphan: true,
                title: "Help Title",
                content: '<button id="newButton" data-bind="click: showMessage">showMessage</button>',
                onShown: function(tour) {
                    // apply the bindings after content is added
                    ko.applyBindings(self, document.getElementById("newButton"));
                }
            }
        ]
    });
    this.startTour = function() {
        this.tour.init();        
        self.tour.start(true);        
    }
    this.showMessage = function() {
        alert('Hello!');
    }
}
函数ViewModel(){
var self=这个;
this.tour=新的巡更({
步骤:[
{
孤儿:是的,
标题:“帮助标题”,
内容:“showMessage”,
onShown:功能(巡演){
//添加内容后应用绑定
应用绑定(self,document.getElementById(“newButton”);
}
}
]
});
this.startTour=函数(){
this.tour.init();
self.tour.start(true);
}
this.showMessage=函数(){
警惕(“你好!”);
}
}

Knockout不会为新添加的元素自动更新绑定。不过有一个解决办法,请参见此(和)。以下是基于此解决方案的可能解决方案

因此,您有一个主视图模型,它将开始您的巡演:

function ViewModel(){
    var self = this;
    this.tour = new Tour({ 
        steps: [
            {
                orphan: true,
                title: "Help Title",
                content: '<button id="newButton" data-bind="click: showMessage">showMessage</button>',
                onShown: function(tour) {
                    // apply the bindings after content is added
                    ko.applyBindings(self, document.getElementById("newButton"));
                }
            }
        ]
    });
    this.startTour = function() {
        this.tour.init();        
        self.tour.start(true);        
    }
    this.showMessage = function() {
        alert('Hello!');
    }
}
函数ViewModel(){
var self=这个;
this.tour=新的巡更({
步骤:[
{
孤儿:是的,
标题:“帮助标题”,
内容:“showMessage”,
onShown:功能(巡演){
//添加内容后应用绑定
应用绑定(self,document.getElementById(“newButton”);
}
}
]
});
this.startTour=函数(){
this.tour.init();
self.tour.start(true);
}
this.showMessage=函数(){
警惕(“你好!”);
}
}

谢谢,这会有用的。演示功能如何?这能拯救超时黑客吗?@MichaelHilus,说得好,我怎么能错过呢。我已经更新了我的答案,使用了
onShown
事件处理程序,没有任何恶意攻击,谢谢!谢谢,这会有用的。演示功能如何?这能拯救超时黑客吗?@MichaelHilus,说得好,我怎么能错过呢。我已经更新了我的答案,使用了
onShown
事件处理程序,没有任何恶意攻击,谢谢!谢谢,这会有用的。演示功能如何?这能拯救超时黑客吗?@MichaelHilus,说得好,我怎么能错过呢。我已经更新了我的答案,使用了
onShown
事件处理程序,没有任何恶意攻击,谢谢!谢谢,这会有用的。演示功能如何?这能拯救超时黑客吗?@MichaelHilus,说得好,我怎么能错过呢。我已经更新了我的答案,使用了
onShown
事件处理程序,没有任何恶意攻击,谢谢!